#tsql
#tsql
Вопрос:
Я должен выбрать все поля, которые содержат определенный текст и заканчиваются символами "
, '
)
или пробелом, или этот текст помещается в конец строки.
Итак, мне нужно что-то подобное:
select *
from MyTable
Where Column1 like '%' @text '["'') ]%'
Этот запрос работает нормально, пока текст не будет помещен в конец Column1
.
Комментарии:
1. Не могли бы вы ввести какой-нибудь простой ввод и желаемый результат?
Ответ №1:
Вы могли бы использовать
Where Column1 '"' like '%' @text '["'') ]%'
Ответ №2:
Почему бы не попробовать ИЛИ?
Where Column1 like '%' @text '["'') ]%'
or
Column1 like '%' @text '["'') ]'
Или я неправильно понимаю требование? Ваш вопрос немного сложен для понимания.
Ответ №3:
SELECT *
FROM MyTable
WHERE Column1 LIKE '%' @text '%["'') ]'
OR Column1 LIKE '%' @text
Ответ №4:
Это должно работать лучше и быстрее:
SELECT * FROM MyTable
WHERE
( (RIGHT(Column1,1) IN (' ', '"', '''', ')'))
AND
(SUBSTRING(Column1, LENGTH(@text)-1, LENGTH(@text))=@text)
)
OR ( RIGHT(Column1, LENGTH(@text))=@text )
Комментарии:
1. Операционная система ищет случаи, когда текст находится в середине строки, но за ним следует один из указанных символов или справа от строки.