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

SQL中从Title列提取_tid-后的数字的查询方法

从Title列提取“_tid-”后的数字的SQL查询

根据需求,以下是不同SQL方言下的实现方案,针对Title列中_tid-后缀的数字进行提取:

MySQL/MariaDB

使用正则表达式函数直接捕获数字部分:

SELECT 
  Title,
  REGEXP_SUBSTR(Title, '_tid-(\\d+)', 1, 1, NULL, 1) AS Extracted_TID
FROM your_table_name;

说明:REGEXP_SUBSTR通过正则_tid-(\\d+)匹配目标片段,最后一个参数1指定返回第一个捕获组(即括号内的数字部分)。

SQL Server(2016及以上版本)

利用正则替换提取目标数字:

SELECT 
  Title,
  REGEXP_REPLACE(Title, '.*_tid-(\d+).*', '$1') AS Extracted_TID
FROM your_table_name;

如果使用更早版本,可通过字符定位函数实现:

SELECT 
  Title,
  CASE 
    WHEN CHARINDEX('_tid-', Title) > 0 THEN
      SUBSTRING(
        Title, 
        CHARINDEX('_tid-', Title) + 5, 
        ISNULL(PATINDEX('%[^0-9]%', SUBSTRING(Title, CHARINDEX('_tid-', Title) + 5, LEN(Title))), LEN(Title) - CHARINDEX('_tid-', Title) - 4)
      )
    ELSE NULL
  END AS Extracted_TID
FROM your_table_name;

PostgreSQL

PostgreSQL的SUBSTRING原生支持正则捕获组:

SELECT 
  Title,
  SUBSTRING(Title FROM '_tid-(\d+)') AS Extracted_TID
FROM your_table_name;

Oracle

通过REGEXP_SUBSTR指定捕获组提取数字:

SELECT 
  Title,
  REGEXP_SUBSTR(Title, '_tid-(\d+)', 1, 1, 'i', 1) AS Extracted_TID
FROM your_table_name;

注:若部分Title不含_tid-片段,上述查询会返回NULL,可根据需求使用COALESCE函数设置默认值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:54:35