Sql 使用LIKE获取只有特定字符的记录
我的SQL表中的一列将“~”作为字符串的一部分 我想选择所有两边都有带字符串的~但不以结尾的记录~ 我试过使用LIKE语句Sql 使用LIKE获取只有特定字符的记录,sql,sql-server,Sql,Sql Server,我的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 谢谢。您可以向L
SELECT TOP (1000)
[PNO]
FROM [MYTABLE] where PNO like '%~%'
代码正确地返回所有记录,并带有~
结果如下:
C799~
C799~001~6907
E066~
E066~001~8558
但是,我想修改查询,使其只返回
C799~001~6907
E066~001~8558
谢谢。您可以向
LIKE
表达式添加第二个条件,以排除以波浪号结尾的记录:
SELECT TOP (1000) [PNO]
FROM [MYTABLE]
WHERE PNO LIKE '%~%' AND PNO NOT LIKE '%~';
您可以使用通配符
\
字符。\
是1个字符的通配符。总的来说,这意味着您接受带有~
且后面至少有一个字符的字符串:
SELECT TOP (1000) [PNO]
FROM [MYTABLE] where PNO like '%~_%'
在SQL Server中,您可以使用:
SELECT TOP (1000) [PNO]
FROM [MYTABLE]
WHERE PNO like '%~%[^~]'
在其他数据库中,可能会使用正则表达式,例如“`~.[^~]$”
最后,您可以使用like
和not like
:
WHERE PNO LIKE '%~%' AND PNO NOT LIKE '%~';
您使用的是什么sql数据库?