如何检查字符串在SQL查询中是否正好包含两个单词?



我需要执行一个简单的SQL查询,该查询将仅选择那些正好由两个单词组成的名称

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

您可以使用likenot like

where name like '% %' and not like '% % %'

另一种选择是使用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

如果您希望这两个词都存在且准确:

SELECT * 
FROM table
WHERE column LIKE '%word1%'
AND column LIKE '%word2%'

最新更新