如何在Select查询中限制指定列返回的字符数
如何在SELECT语句中限制指定列的输出字符长度
完全可以通过数据库内置的字符串截取函数实现,不同数据库的语法差异很小,主流数据库的实现方案如下:
- 通用方案(支持Oracle、MySQL、PostgreSQL、达梦等绝大多数数据库):使用
SUBSTR(或SUBSTRING)函数
示例代码:
参数说明:第一个参数为目标字段名,第二个参数为截取起始位置(从第1个字符开始),第三个参数为最大截取长度,设置为你需要的100即可。SELECT SUBSTR(ADDRESS, 1, 100) AS ADDRESS FROM EMPLOYEETABLE; - SQL Server专属简化方案:使用
LEFT函数
示例代码:
效果和SELECT LEFT(ADDRESS, 100) AS ADDRESS FROM EMPLOYEETABLE;SUBSTRING完全一致,语法更简洁。
额外补充说明
- 如果ADDRESS字段的实际长度小于100,上述函数会直接返回完整的原始值,不会报错也不会补空字符,无需额外做长度判断。
- 如果需要在内容被截断时添加省略号标识,可以结合长度判断函数实现,以Oracle为例:
该逻辑会在地址超过100字符时,取前97个字符拼接3个点,总长度刚好为100字符,同时可以明确告知用户内容有截断。SELECT CASE WHEN LENGTH(ADDRESS) > 100 THEN SUBSTR(ADDRESS, 1, 97) || '...' ELSE ADDRESS END AS ADDRESS FROM EMPLOYEETABLE;
内容的提问来源于stack exchange,提问作者Kyujiin
相关产品推荐
相关产品推荐

