SQL STR()函数相等

时间:2011-12-22 21:18:16

标签: sql string sql-server-2005

为什么这个sql语句在SQL 2005中没有返回任何行?

select 1 from tblMessage where '210' = STR(210)

这应该始终为true并返回表中的所有行。

谢谢

2 个答案:

答案 0 :(得分:2)

STR返回的默认长度为10.您可以指定长度。

select 1 from tblMessage where '210' = STR(210,3)

答案 1 :(得分:1)

STR创建一个length 10 by default字符串。

尝试:

select ltrim(str(210))

或者,如果您知道您的号码有多长,您可以指定字符串长度,例如:

select str(210, 3)

您也可以使用数字本身来确定长度,例如:

select str(210, len(210))

所以,一个有效的例子:

declare @n as int
set @n = 123
select case when str(@n, len(@n)) = '123' then 'equal' else 'not equal' end