我的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

谢谢。

最佳答案

在SQL Server中,可以使用:

SELECT TOP (1000) [PNO]
FROM [MYTABLE]
WHERE PNO like  '%~%[^~]'

在其他数据库中,您可能会使用正则表达式,例如''〜。* [^〜] $'。

作为最后的途径,可以使用likenot like做到这一点:
WHERE PNO LIKE '%~%' AND PNO NOT LIKE '%~';

关于sql - 使用LIKE获取仅具有特定字符的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56496114/

10-17 03:08