如何筛选数据表中所有字符均为'X'的行?
解决方案
要筛选出COL列中所有字符都是'X'的行(同时排除NULL值),可以根据你使用的数据库选择对应的SQL语句:
方法1:正则匹配法
MySQL/MariaDB
SELECT COL FROM your_table WHERE COL REGEXP '^X+$'
PostgreSQL
SELECT COL FROM your_table WHERE COL ~ '^X+$'
SQL Server(2017及以上版本)
SELECT COL FROM your_table WHERE REGEXP_LIKE(COL, '^X+$')
正则^X+$的逻辑是:匹配从开头到结尾全由一个或多个'X'组成的字符串,自动排除含其他字符(如Y)和NULL的行。
方法2:字符串替换法
如果数据库不支持正则,可通过替换'X'后判断结果是否为空来实现:
SELECT COL FROM your_table WHERE REPLACE(COL, 'X', '') = '' AND COL IS NOT NULL
该逻辑是:把COL里的所有'X'替换为空后,若结果为空则说明原字符串全是X;加上COL IS NOT NULL专门排除空值行。
执行后输出结果
COL --- XXX
内容的提问来源于stack exchange,提问作者Javi Torre
相关产品推荐
相关产品推荐

