sql - 是否可以在 Case 语句中执行 Select 语句
问题描述
这样的事情可能吗?
SELECT WH_ACC_NO,
CASE
WHEN FIELD2 IN (SELECT * FROM TABLEB)
THEN 'PASS'
ELSE 'FAIL'
END
FROM TABLEA
解决方案
Teradata 中 CASE 中的 SELECT 语法有点限制,您需要编写相关标量子查询以避免CASE 表达式错误的 WHEN 子句中的 3771 Illegal expression:
SELECT WH_ACC_NO,
CASE -- when FieldWhatever is not unique this shuld be MAX(FieldWhatever)
WHEN FIELD2 = (SELECT FieldWhatever FROM TABLEB AS b WHERE a.Field2 = b.FieldWhatever)
THEN 'PASS'
ELSE 'FAIL'
END
FROM TABLEA AS a
推荐阅读
- python - python 测试作为一个独立的脚本
- spring-boot - 弹簧执行器未记录健康端点
- android - Fresco - 如何检查文件是否以编程方式为 webP 动画?
- python - 使用 pywaffle 在 python 中创建带有阴影的华夫饼图
- visual-studio - 有没有办法查看一个 Visual Studio 项目有多少个文件?
- pandas - 熊猫用列表扩展多列
- excel - 如何切断字符串的一部分并将其添加为 ComboBox.Value?
- python-3.x - 如何通过在python中删除FeatureSpace来重写代码
- grammar - 如何在 lbnf / bnfc 语法中调试“X 没有生产”?
- python - 蜂巢+pyspark。Py4JJavaError: NoClassDefFoundError: /Logging$class