如何在Microsoft SQL Server中基于正则表达式创建格式验证标志
判断手机号是否以0开头的布尔标志实现方案
针对你的Test数据集,下面分不同主流SQL数据库给出实现布尔标志的具体写法:
核心说明
你提到的Cell LIKE '^0%'是正则表达式的写法,大部分SQL的LIKE语法不支持^作为开头锚定符,直接用'0%'即可匹配以0开头的字符串。
MySQL/MariaDB
可以用CASE表达式或IF函数生成标志,MySQL中布尔值本质是tinyint类型(1为真,0为假):
SELECT ID, Cell, -- 返回1/0数值标志 CASE WHEN Cell LIKE '0%' THEN 1 ELSE 0 END AS Is_Start_With_0, -- 返回布尔类型标志 IF(Cell LIKE '0%', TRUE, FALSE) AS Is_Start_With_0_Bool FROM Test;
SQL Server
使用CASE表达式结合BIT类型生成布尔标志:
SELECT ID, Cell, -- 返回BIT类型布尔标志 CASE WHEN Cell LIKE '0%' THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END AS Is_Start_With_0, -- 返回1/0数值标志 CASE WHEN Cell LIKE '0%' THEN 1 ELSE 0 END AS Is_Start_With_0_Num FROM Test;
PostgreSQL
支持原生布尔类型,可直接转换或用CASE:
SELECT ID, Cell, -- 直接转换为布尔类型 (Cell LIKE '0%')::BOOLEAN AS Is_Start_With_0, -- 用CASE表达式实现 CASE WHEN Cell LIKE '0%' THEN TRUE ELSE FALSE END AS Is_Start_With_0_Alt FROM Test;
内容的提问来源于stack exchange,提问作者Kieren Duffy
相关产品推荐
相关产品推荐

