Как проверить, содержит ли строка ровно два слова в запросе SQL? - PullRequest
2 голосов
/ 28 мая 2020

Мне нужно выполнить простой SQL запрос, который выберет только те имена, которые составлены ровно из двух слов

SELECT NAME
FROM GROUP
WHERE NAME <Contains exactly two words>

Ответы [ 3 ]

2 голосов
/ 28 мая 2020

Вы можете использовать like и not like:

where name like '% %' and not like '% % %'
1 голос
/ 28 мая 2020

Другой вариант - использовать LEN() (конечно, я предполагаю, что конечных пробелов нет):

SELECT [NAME]
FROM [GROUP]
WHERE LEN([NAME]) - LEN(REPLACE([NAME], ' ', '')) = 1

Если данные в столбце NAME имеют конечный пробел, вы можете использовать TRIM (для SQL Server 2017+) или комбинация LTRIM() и RTRIM() для более ранних версий:

SELECT [NAME]
FROM [GROUP]
WHERE LEN(TRIM([NAME])) - LEN(REPLACE(TRIM([NAME]), ' ', '')) = 1
0 голосов
/ 28 мая 2020

Если вы хотите, чтобы оба слова присутствовали и были точными:

SELECT * 
FROM table
WHERE column LIKE '%word1%'
AND column LIKE '%word2%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...