检查列是否不包含字符串列表

问题描述 投票:0回答:1

有没有办法检查列是否不包含字符串列表?我的目标是找出 filenm 列中除了苹果、香蕉或橙色之外是否还有其他类型的字符串模式。

这不起作用,因为它仍然会显示包含苹果、橙子或香蕉的列...逻辑有缺陷。

    SELECT * FROM dbo.File fWHERE (CHARINDEX('apple', f.FileNm ) = 0
    OR (CHARINDEX('orange', f.FileNm ) = 0
    OR (CHARINDEX('banana', f.FileNm ) = 0)
sql sql-server
1个回答
0
投票

从 OR 更改为 AND

SELECT * FROM dbo.File f 
WHERE (CHARINDEX('apple', f.FileNm ) = 0
      AND (CHARINDEX('orange', f.FileNm ) = 0
      AND (CHARINDEX('banana', f.FileNm ) = 0)

也可以这样写

SELECT * FROM dbo.File f
WHERE f.FileNm not like '%apple%'
      AND f.FileNm not like '%orange%'
      AND f.FileNm not like '%banana%'
© www.soinside.com 2019 - 2024. All rights reserved.