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

SQL中SUBSTRING提取的子串转换为integer整数类型的实现方法

SQL字段类型转换修改方案

你只需在原有的SUBSTRING逻辑外层增加整数类型转换函数即可,以下给出不同场景下的实现方式:

通用标准SQL写法(适配绝大多数数据库,兼容性最高)

使用SQL标准定义的CAST函数,支持PostgreSQL、MySQL、SQL Server等几乎所有主流关系型数据库,修改后的完整代码如下:

CREATE OR REPLACE VIEW vw_uncnload_new  
AS
    SELECT
        icp,
        CAST(SUBSTRING(channel, 2, 1) AS INTEGER) AS channel_no,
        price_category, 
        network_code,
        msn,
        interval_date,
        interval_number,
        compensation_factor,
        read_value
    FROM
        smartco_prod_meterdata.meter_interval

不同数据库专属简化写法

如果需要适配特定数据库的语法,可以选择对应简化写法:

  • MySQL:可以直接做隐式转换,或者用SIGNED类型声明
-- 隐式转换写法
SUBSTRING(channel, 2, 1) + 0 AS channel_no
-- 显式转换写法
CAST(SUBSTRING(channel, 2, 1) AS SIGNED) AS channel_no
  • Oracle:使用内置TO_NUMBER函数
TO_NUMBER(SUBSTRING(channel, 2, 1)) AS channel_no

提示:你提取的内容本身是数字字段的组成部分,全为数字字符,转换过程不会出现类型不匹配报错,无需额外添加异常处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:15:03