我一直在寻找并解决我的问题的解决方案,即使我发现了一些可能会有所帮助的方法,但我不确定这是否是满足我需要的正确方法。请记住,我正在学习并且对SQL相当陌生。但是我有两个要使用内部联接查询的表。

两个表中都有一个名为CAVITY的列,但它们以不同的格式保存值。一个表的值保留为H02,另一表的值保留为2。

我想使用H02格式对此列进行内部联接,但不想更新将值保存为单个数字的表(出于数据输入目的)。因此,例如,如果一个表列包含H02,而另一个表列包含2,我希望将其合并。如果一个表具有H13,另一个表具有H13,我希望它也成为联接。因此,基本上,我要删除H和0(但前提是直接在H后面有0)。除非有一种方法可以做到相反,然后从另一个表的结果中添加H / H0。

example data
table1.cavity   table2.cavity
     H01      =    1
     H02      =    2
     H10      =    10
     H12      =    12


我的查询结果是否为H0版本与我无关紧要;我只需要加入即可工作;最后我可以适应任何一个结果。

我正在使用SQL Server 2005

我有其余的查询,它工作正常;我只需要添加此额外的联接。请帮忙!任何帮助是极大的赞赏。谢谢

最佳答案

REPLACE(REPLACE(cavity,'H0',''),'H','')

第一个删除H0:

REPLACE(cavity,'H0','')

然后第二个替换所有剩余的H:

REPLACE(output_of_previous,'H','')

08-27 16:29