You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server中用LIKE语句查找列中的无效字符?

用SQL Server的LIKE语句筛选含非法字符的行

要找出MyCol列中包含字母、数字、连字符(-)、下划线(_)以外字符的行,你可以使用否定字符集的LIKE模式,具体语句如下:

SELECT *
FROM YourTable
WHERE MyCol LIKE '%[^a-z0-9\-_]%'

关键说明:

  • 你之前使用的MyCol NOT LIKE '%[a-z0-9]%'逻辑有误:这个语句只会筛选完全不包含字母/数字的行,无法识别那些同时包含合法和非法字符的行。
  • [^a-z0-9\-_]是核心匹配规则:
    • ^在方括号内表示“匹配不在后续字符集中的任意字符”
    • a-z匹配小写字母(若需支持大写,可改为a-zA-Z,或依赖SQL Server默认的不区分大小写排序规则)
    • 0-9匹配数字
    • \-匹配连字符(必须转义,否则会被当作范围分隔符)
    • _匹配下划线(在方括号内无需转义,直接表示普通下划线)

补充场景:

如果需要包含NULL值(新系统可能不允许NULL),可以扩展条件:

SELECT *
FROM YourTable
WHERE MyCol LIKE '%[^a-z0-9\-_]%'
   OR MyCol IS NULL

内容的提问来源于stack exchange,提问作者Vaccano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:02:33