正确的功能+转换

时间:2014-09-17 07:56:48

标签: sql

我正在比较两个表中的列。但是,其中一个包含两个值的数字(如01),而另一个包含一个值的数字(如1)。

因此,以下条件不起作用: `WHERE column_1<> column_2(结果' 01'和' 1'被认为不相等)。

我被告知要在结果的第二列的每个数字上加零,并尝试使用它: column_1 <> RIGHT(column_2('0' + CONVERT(VARCHAR(2), '1'), 2)) 但是我从SQL管理工作室得到的错误信息是&#34;正确的函数需要两个参数&#34;。

有没有人知道可以做些什么? 谢谢!

2 个答案:

答案 0 :(得分:1)

您应该将字符串转换为整数(CAST AND CONVERT)并比较整数:

where CAST(column_1 as INT) <> CAST(column_2 as INT)

答案 1 :(得分:0)

正如@JotaBe所提到的,你应该比较整数,而不是搅拌。 但是,在第二种情况下,你的代码在语法上是不正确的,它应该是:

column_1 <> RIGHT('0' + CONVERT(VARCHAR(2), column_2), 2)
但是,例如,它不会使用负数。