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

igsr9ssn  于 2021-08-13  发布在  Java
关注(0)|答案(3)|浏览(332)

我需要执行一个简单的sql查询,它只选择由两个单词组成的名称

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

uwopmtnx1#

你可以用 like 以及 not like :

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

vyswwuz22#

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

pepwfjgg3#

如果你想让这两个词同时出现和准确:

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

相关问题