【发布时间】:2015-02-10 19:53:16
【问题描述】:
当我输入时,我想检索其标签 (nvarchar(1000)) 具有“奥巴马家族”的所有行:
WHERE Label LIKE '%Obama family%'
它给出了这样的行。
现在我只想要标签为“奥巴马家族”的行
我尝试了这些,它们都返回空结果:
WHERE LOWER(Label) LIKE LOWER('Obama family')
WHERE LOWER(Label) = LOWER('Obama family')
WHERE Label LIKE 'Obama family'
WHERE Label = 'Obama family'
WHERE Label LIKE N'Obama family'
WHERE Label = N'Obama family'
我试过这个:
Update [Wiki].[dbo].[Page] set [label] = RTRIM(LTRIM([label]))
并再次应用查询,仍然返回空。
【问题讨论】:
-
I want only the row that its label is 'obama family'。然后不要使用LIKE使用等于= -
如果这是 SQL Server,请使用
RTRIM(LTRIM(Label)) -
试试
LTRIM(RTRIM(Label))= -
LABEL LIKE '%Obama family%'表示“LABEL 列中包含任何包含‘奥巴马家族’的所有行”。如果您想要完全是“奥巴马家族”的行,只需使用不带百分号的'obama family'(并使用小写“o”),并使用“=”而不是“LIKE”。这是基本的 SQL;你应该找一个教程或读一本书。 -
在 SQL Server 结果网格中,尝试复制您尝试匹配的单元格(包含“奥巴马家族”的
values字段),然后将其粘贴到文本编辑器中。有没有表现出什么特别的东西?当您使用文本编辑器的功能搜索空格时会发生什么?我以前见过这样的情况,其中一个文本字段包含一个奇怪的字符,看起来像一个空格,但不是。
标签: sql sql-server sql-like nvarchar