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

如何去除整数列的最后三位?SQL查询实现方案咨询

解决整数列去除最后三位的SQL查询方法

针对HR_table表中number_of_people整数列需要去除最后三位的需求,提供两种可行方案:

方案一:字符串转换适配LEFT函数

由于LEFT仅支持字符串类型,先将整数列转换为字符串,截取前N-3位后可按需转回整数:

不同数据库写法示例:

  • SQL Server:
    SELECT CAST(LEFT(CAST(number_of_people AS VARCHAR), LEN(CAST(number_of_people AS VARCHAR)) - 3) AS INT) AS EditedColumn
    FROM HR_table
    LIMIT 15;
    
  • MySQL:
    SELECT CAST(LEFT(CAST(number_of_people AS CHAR), LENGTH(CAST(number_of_people AS CHAR)) - 3) AS UNSIGNED) AS EditedColumn
    FROM HR_table
    LIMIT 15;
    
  • PostgreSQL:
    SELECT CAST(LEFT(CAST(number_of_people AS TEXT), LENGTH(CAST(number_of_people AS TEXT)) - 3) AS INTEGER) AS EditedColumn
    FROM HR_table
    LIMIT 15;
    

方案二:数学整除运算(更高效)

利用整数整除1000的特性直接去掉最后三位,无需字符串转换,性能更优:

通用及分库写法:

  • 通用写法(多数数据库兼容):
    SELECT FLOOR(number_of_people / 1000) AS EditedColumn
    FROM HR_table
    LIMIT 15;
    
  • MySQL 专用整除语法:
    SELECT number_of_people DIV 1000 AS EditedColumn
    FROM HR_table
    LIMIT 15;
    
  • SQL Server 整数除法:
    SELECT number_of_people / 1000 AS EditedColumn
    FROM HR_table
    LIMIT 15;
    

两种方案对比:字符串转换法适合需处理特殊格式的场景,数学运算法则更高效,且结果直接为整数类型,更贴合原列数据特性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:50:34