如何在SQL Server中查询字段值仅包含逗号的记录
你原有代码仅统计了每个Ename字段中逗号的数量,没有添加筛选条件,也没有判断字段是否仅包含逗号,所以无法得到预期结果。
可以用以下两种方案实现需求:
方案1:替换后判断长度
核心逻辑是把字段内所有逗号替换为空字符串,若替换后内容长度为0,说明原字段仅由逗号构成:
SELECT Eid, Ename FROM Emp WHERE LEN(REPLACE(Ename, ',', '')) = 0 -- 若需排除NULL值可追加条件:AND Ename IS NOT NULL
方案2:通配符匹配
用SQL Server的通配符规则,判断字段中不存在任何非逗号的字符:
SELECT Eid, Ename FROM Emp WHERE Ename NOT LIKE '%[^,]%' -- 同样可追加 AND Ename IS NOT NULL 过滤NULL值
以上两种方案都可以正确筛选出Eid为3(单个逗号)、Eid为4(多个连续逗号)的两条目标记录。
内容的提问来源于stack exchange,提问作者learner123
相关产品推荐
相关产品推荐

