如何解决SQL命令-与%运算符类似
| 在表中,我有一行,其中列“名称”是“名称123” 第一个sql命令返回该行,但是第二个命令什么也不做,为什么?select * from Osoby where imie like \'%123%\'
select * from Osoby where imie like \'%123\'
解决方法
符合其他人的建议,请尝试以下方法-
select * from Osoby where RTRIM(LTRIM((imie)) like \'%123\'
并确认您正在获得该行
, 也许该领域有尾随空格。
, 如果imie
字段是char字段,它将用空格填充您输入的内容,以达到该字段的长度。如果将其更改为varchar字段,则可以删除尾随空格。
如果将字段更改为varchar,请运行UPDATE Osoby SET imie = RTRIM(imie)
修剪多余的空格。
从本质上讲,您发布的查询应该可以正常工作,听起来好像您的数据有问题。
, 检查您的数据类型并查看:
http://msdn.microsoft.com/en-us/library/ms179859.aspx
使用LIKE进行模式匹配
LIKE支持ASCII模式匹配和Unicode模式匹配。当所有参数(match_expression,pattern和scape_character,如果存在)都是ASCII字符数据类型时,将执行ASCII模式匹配。如果任何一个参数都是Unicode数据类型,则所有参数都将转换为Unicode并执行Unicode模式匹配。当您将Unicode数据(nchar或nvarchar数据类型)与LIKE一起使用时,尾随空格很重要;但是,对于非Unicode数据,尾随空格并不重要。 Unicode LIKE与ISO标准兼容。 ASCII LIKE与SQL Server的早期版本兼容。
, 为防止空间问题,请尝试以下操作:
select * from Osoby where ltrim(rtrim(imie)) like \'%123\'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。