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

如何编写Teradata查询拆分单行多值的CONDICIONES列

Teradata单行多值列拆分查询方案

你当前的查询仅包含行级筛选逻辑,没有拆分多值列的处理,因此无法返回拆分后的单值结果。Teradata 可使用内置表函数 STRTOK_SPLIT_TO_TABLE 实现多值列的行转列拆分,参考写法如下:

SELECT 
    t."Hora TRX",
    t."Fecha TRX",
    t."Código Cliente",
    s.token AS Condicion_individual -- 拆分后的单个条件值
FROM CONDICIONES t
INNER JOIN TABLE (
    STRTOK_SPLIT_TO_TABLE(
        t."Código Cliente", -- 传入能唯一标识原行的字段即可,也可替换为表主键
        t.Condiciones, -- 指定要拆分的多值列
        '<替换为实际分隔符>' -- 示例:逗号填','、竖线填'|',多分隔符可直接并列写如',;|'
    )
    RETURNS (outkey VARCHAR(100), tokennum INTEGER, token VARCHAR(100))
) s ON 1=1
-- 筛选拆分后的值符合要求的记录,会自动过滤同一条原行中不符合的其他值
WHERE s.token IN ('0800','0801','0805','0806','0821')

注意事项

  • 可根据实际业务的CONDICION值长度调整RETURNS子句中token的字段长度,避免值截断
  • 若需要保留原行所有拆分后的值(仅要求原行至少包含一个目标值),可将WHERE条件替换为你原来的写法:WHERE t.CONDICIONES LIKE ANY ('%0800%', '%0801%', '%0805%', '%0806%', '%0821%')
  • 若多值列存在多余空格,可先对拆分列做TRIM处理再传入函数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 00:36:10