我的SQL表中的一列有“〜”作为字符串的一部分 我想选择所有在两边都有〜且不以〜
结尾的记录我尝试使用LIKE语句,例如
SELECT TOP (1000)
[PNO]
FROM [MYTABLE] where PNO like '%~%'
代码正确地返回所有带有〜
的记录结果是:
C799~
C799~001~6907
E066~
E066~001~8558
但是我想修改查询,使其只返回
C799~001~6907
E066~001~8558
谢谢。
答案 0 :(得分:5)
您可以使用通配符_
。 _
是1个字符的通配符。总体而言,这意味着您接受带有~
并且后面至少包含1个字符的字符串:
SELECT TOP (1000) [PNO]
FROM [MYTABLE] where PNO like '%~_%'
答案 1 :(得分:0)
您可以在LIKE
表达式中添加第二个条件,以排除以波浪号结尾的记录:
SELECT TOP (1000) [PNO]
FROM [MYTABLE]
WHERE PNO LIKE '%~%' AND PNO NOT LIKE '%~';
答案 2 :(得分:0)
在SQL Server中,您可以使用:
SELECT TOP (1000) [PNO]
FROM [MYTABLE]
WHERE PNO like '%~%[^~]'
在其他数据库中,您可能会使用正则表达式,例如''〜。* [^〜] $'。
作为最后的手段,您可以使用like
和not like
进行此操作:
WHERE PNO LIKE '%~%' AND PNO NOT LIKE '%~';