Teradata SQL中WHERE子句合并两列使用IN函数查询问题
Teradata 字段拼接IN查询实现方法
Teradata 环境下字符串拼接的通用标准运算符为 ||,你尝试的+仅支持数值运算,CONCAT函数仅在14.10及更高版本可用,所以用||运算符即可实现需求。
基础写法(字段均为字符串类型、无NULL值)
SELECT * FROM 你的实际表名 WHERE PROV_NUM || AFF_NUM IN ('P000125460012', 'P000145890003');
特殊场景适配
- 若AFF_NUM为数值类型,需先显式转字符串避免隐式转换异常:
SELECT * FROM 你的实际表名 WHERE PROV_NUM || CAST(AFF_NUM AS VARCHAR(10)) IN ('P000125460012', 'P000145890003');
- 若字段可能存在NULL值,需搭配
COALESCE替换NULL为空字符串,避免拼接结果整体为NULL:
SELECT * FROM 你的实际表名 WHERE COALESCE(PROV_NUM, '') || COALESCE(CAST(AFF_NUM AS VARCHAR(10)), '') IN ('P000125460012', 'P000145890003');
内容的提问来源于stack exchange,提问作者energykeith
相关产品推荐
相关产品推荐

