SELECT产品名称中只有一个单词

时间:2014-07-11 19:52:47

标签: sql sql-server sql-server-2008

如何从只有一个单词的表格中选择记录。

例如,products表包含:

Alice Mutton
Aniseed Syrup
Boston Crab Meat
Camembert Pierrot
Carnarvon Tigers
Chai
Chang
Chartreuse verte
Chef Anton's Cajun Seasoning
Chocolade
Chef Anton's Gumbo Mix

我如何才能获得这些记录:

Chai
Chang
Chocolade

3 个答案:

答案 0 :(得分:3)

您可以使用CHARINDEX()

SELECT *
FROM YourTable
WHERE CHARINDEX(' ',Products) = 0

演示:SQL Fiddle

CHARINDEX()返回字符串中特定字符的位置,如果字符串中不存在该字符,则返回0

注意,如果您的数据有前导/尾随空格,您想要修剪它们:

SELECT *
FROM YourTable
WHERE CHARINDEX(' ',LTRIM(RTRIM(Products))) = 0

答案 1 :(得分:3)

 Select [name] 
 From [table] 
 Where [name] Not Like '% %'
下面的

将获得前面或末尾有空格的任何内容。虽然从经验来看,您通常希望使用修剪来运行更新以删除类似的内容:

 SELECT name,RTRIM(LTRIM(name)) From table
 WHERE RTRIM(LTRIM(name)) NOT LIKE '% %'

答案 2 :(得分:1)

添加此内容作为添加更具描述性的内容的答案:

Select * from [table] where ([field] LIKE ('%Chai%') OR [field] LIKE ('%Chocolade%')) and NOT LIKE ('% %')

这将过滤掉任何带空格的条目。