SQL Server - использовать подстроку в предложении where - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь найти запрос, в котором он собирается фильтровать по подстроке. Операция подстроки работает нормально, если я использую ее как оператор выбора, но не когда пытаюсь использовать ее для фильтрации

-- These are some examples of the data I have
--cust_12
--cust_123
--temp_db
SELECT SUBSTRING(name,8,LEN(name)) AS ClientId, name FROM sys.databases
WHERE SUBSTRING(name,8,LEN(name)) IN ('12, 123');

Если я запускаю запрос без секции where, данные анализируются правильно, однако при использовании там, где я не получил результатов

Ответы [ 2 ]

4 голосов
/ 16 мая 2019

Это логика, которую вы хотите?

WHERE SUBSTRING(name, 8, LEN(name)) IN ('12', '123')

Но я думаю, что был бы более склонен написать это как:

where name like '%[_]12'] or
      name like '%[_]123' 

Я просто думаю, что намерение яснее.

1 голос
/ 16 мая 2019

Ваши котировки неверны:

SELECT SUBSTRING(name,8,LEN(name)) AS ClientId, name FROM sys.databases
WHERE SUBSTRING(name,8,LEN(name)) IN ('12, 123');

должно быть:

SELECT SUBSTRING(name,8,LEN(name)) AS ClientId, name FROM sys.databases
WHERE SUBSTRING(name,8,LEN(name)) IN ('12', '123');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...