循环访问大小写 when 子句中的其他表



我有以下 CASE WHEN 子句

SELECT T0.foo, CASE WHEN T0.Column1 = 'Y' THEN '8mm' 
WHEN T0.Column2 = 'Y' THEN '10mm' 
WHEN T0.Column7 = 'Y' THEN '13mm'
WHEN T0.Column50 = 'Y' THEN '30mm' END AS 'Width'
...
FROM Table1 T0

实际上,映射是另一个查询Table2的结果

=========================
Column1      Column2
=========================
Column1      8mm
Column2      10mm
Column7      13mm
Column50     30mm 
...          ...

我正在寻找一种方法来生成第一个语句中的 CASE WHEN 子句,其中包含通过第二个语句的结果为每个循环或迭代提供某种类型。

伪代码:

SELECT T0.foo, CASE WHEN (Select Column1 FROM Table2) = 'Y' THEN (SELECT Column2 FROM Table2) as 'Width'
FROM Table1 T0

使用join

SELECT T1.foo, t2.Width
FROM Table1 T1 LEFT JOIN
Table2 t2
ON (t1.column1 = 'Y' AND t2.column = 'Column1') OR
(t1.column1 = 'Y' AND t2.column = 'Column7') OR
. . . 

相关内容

最新更新