SQL Like运算符空格向后搜索

时间:2013-12-15 14:29:33

标签: c# sql

我在数据库中有Person表。其中包含firstnamelastnameagecountry

person1:John,Tom,29,italy

我想按国家/地区搜索最后一个字母%y,但因为国家/地区字段定义为15个字符,因此该字段的其余部分为空格。是这样的:italy----------其中-表示空格。

所以它永远不会发现意大利,因为该领域以白色空间结束。 怎么能修好?在运行Like运算符之前删除空格!

3 个答案:

答案 0 :(得分:0)

快速解决方案是使用RTRIM(Country)

更好的解决方案是更新此列:

UPDATE YourTable
SET Country = RTRIM(LTRIM(Country))

并删除添加或更新新国家/地区的代码中的额外空格。

答案 1 :(得分:0)

您似乎将国家/地区存储为char()字段而非varchar()字段。我建议将定义更改为varchar(255)或类似的内容 - 对于国名,15个字符似乎太短。

如果你不能这样做,你也可以这样做:

where country like replace(cast(country as varchar(255)), ' ', '') like '%y'

还有其他方法可以表达这一点,但这应该适用于大多数数据库(您没有提到您正在使用的特定引擎)。

答案 2 :(得分:0)

试试这个:

Select * from table where right(country,1)='y'

See here for Right()