Проверьте, содержит ли строка значение столбца - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь получить информацию о нескольких учетных записях путем нахождения каждой учетной записи, содержащейся в строке. У меня есть номера счетов 43000-000-00, 40000-100-00 и 45075-200-00, все из которых можно найти в столбце account.

SELECT * FROM records WHERE CHARINDEX('43000-000-00', account) работает нормально, однако добавление строки с новыми символами или замена строки счета столбцом больше не даст результатов. Можно ли как-нибудь определить каждую учетную запись в '43000-000-00, 40000-100-00, 45075-200-00' или в другой аналогично отформатированной строке?

РЕДАКТИРОВАТЬ: счета соответствуют формату XXXXX-XXX-XX, с несколькими случаями, когда используются буквы

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Вы, кажется, хотите:

where account like '43000-000-00%' or
      account like '40000-100-00%' or
      account like '45075-200-00%'

Если это точные совпадения, используйте in:

where account in ('43000-000-00', '40000-100-00%', '45075-200-00')

Если вы действительно хотите передать строку с запятыми, вам нужно изучить string_split() функций.

0 голосов
/ 06 июля 2018

Вы не были слишком конкретны. Меняется ли только первая цифра второго кортежа? Если так, это сделает работу:

SELECT * 
FROM records 
WHERE account like '40000-[0-9]00-00'

или используйте [0-2] вместо [0-9], если вас интересуют только три упомянутых вами значения

Общая aplhanumeric версия согласно комментарию:

SELECT * 
FROM records 
WHERE account like '[0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z]-[0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z]-[0-9a-zA-Z][0-9a-zA-Z]'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...