SQL CASE在同一列中的选定列上

时间:2015-10-22 09:27:27

标签: sql db2

我正构建一个大表,我需要在同一个select中使用CASE个几个位置。当我需要在同一个选择中的CASE中使用已选择的列时,会出现问题。例如:

SELECT CASE WHEN (B.field_B1 + C.field_C1) > x THEN x ELSE 0 END AS field_1,
       CASE WHEN field_1 > y THEN 'larger' ELSE 'smaller' END AS field 2,
       CASE WHEN field_1 > z THEN 'taller' ELSE 'shorter' END AS field 3
FROM table_A AS A
INNER JOIN table_B as B on A.key_1 = B.KEY_1
LEFT OUTER JOIN table_C as C on A.key_1 = C.KEY_1

感兴趣的表包含几百列和几百万行,因此性能是一个关键问题。在这种情况下不支持CROSS APPLY,我希望在WITH之前避免使用SELECT,因为这只是大脚本的一小部分。有创意吗?

0 个答案:

没有答案