SQL STR () функция равенства - PullRequest
0 голосов
/ 23 декабря 2011

Почему этот SQL-оператор не возвращает строки в SQL 2005?

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

Это должно быть всегда true и возвращает все строки в таблице.

Спасибо

Ответы [ 2 ]

2 голосов
/ 23 декабря 2011

Длина по умолчанию, возвращаемая STR , равна 10. Вы можете указать длину.

select 1 from tblMessage where '210' = STR(210,3)
1 голос
/ 23 декабря 2011

STR создает строку длины 10 по умолчанию .

Попробуйте:

select ltrim(str(210))

Или, вы можете указать длину строки, если знаете, какова длина вашего номера, например ::10000

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
...