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

SQL如何筛选列中最后三个字符为数字的行?

提取列最后三个字符均为数字的行的SQL实现

你之前用WHERE your_column LIKE 'AB___'的方式只是匹配以AB开头、后面跟任意三个字符的行,所以会包含不符合要求的结果(比如ABQ52、AB18C)。要精准筛选最后三个字符全为数字的行,不同数据库可以用以下方法:

针对不同数据库的实现方式

MySQL/MariaDB

使用正则表达式匹配结尾的三个数字:

SELECT * FROM your_table
WHERE your_column REGEXP '[0-9]{3}$';

如果需要同时限定以AB开头:

SELECT * FROM your_table
WHERE your_column REGEXP '^AB[0-9]{3}$';

PostgreSQL

方法1:正则匹配

SELECT * FROM your_table
WHERE your_column ~ '[0-9]{3}$';

方法2:截取后三位判断是否为纯数字

SELECT * FROM your_table
WHERE RIGHT(your_column, 3) ~ '^[0-9]+$';

SQL Server

方法1:LIKE模式匹配

SELECT * FROM your_table
WHERE your_column LIKE '%[0-9][0-9][0-9]';

方法2:截取后三位结合数字判断(SQL Server 2008及以上)

SELECT * FROM your_table
WHERE ISNUMERIC(RIGHT(your_column, 3)) = 1;

方法3:正则匹配(SQL Server 2016及以上支持)

SELECT * FROM your_table
WHERE REGEXP_LIKE(your_column, '[0-9]{3}$');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:30:53