Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как корректно сравнить строки с замыкающим пробелом?  [new]
ROLpogo
Member

Откуда: Реутов
Сообщений: 216
Подскажите, как корректно записать условие, чтобы вместо '1' выдало ожидаемый '0'?

select case when '2 ' like '2' then '1' else '0' end
24 ноя 16, 13:10    [19929538]     Ответить | Цитировать Сообщить модератору
 Re: Как корректно сравнить строки с замыкающим пробелом?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31425
ROLpogo
select case when '2 ' like '2' then '1' else '0' end
select case when '2 ' + '*' like '2' + '*' then '1' else '0' end
24 ноя 16, 13:28    [19929622]     Ответить | Цитировать Сообщить модератору
 Re: Как корректно сравнить строки с замыкающим пробелом?  [new]
ROLpogo
Member

Откуда: Реутов
Сообщений: 216
alexeyvg,

Спасибо!
Вот ещё один способ нашел, но ваш короче.
select case when cast('2' as nvarchar(128)) like cast('2 ' as nvarchar(128)) then '1' else '0' end
24 ноя 16, 13:36    [19929659]     Ответить | Цитировать Сообщить модератору
 Re: Как корректно сравнить строки с замыкающим пробелом?  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
ROLpogo,

хвостовые пробелы при сравнении строк не учитываются.
Однако, они учитываются в шаблоне LIKE
SELECT CASE WHEN '2' LIKE '2 ' THEN 1 WHEN '2 ' LIKE '2 ' THEN 0 END;
24 ноя 16, 13:36    [19929665]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить