我有两张桌子:pf_rows
| g1 | g2 | g3 | g4 |
+------+------+------+------+
| foo1 | foo2 | foo3 | foo4 |
+------+------+------+------+
和pf_seq
| lite | qty |
+------+-----+
| 1 | 12 |
+------+-----+
| 2 | 12 |
+------+-----+
我需要一个查询,该查询返回基于pf_rows
的值pf_seq
中的值。
例如:当pf_seq.lite=1
时,结果为foo1
,而pf_seq.lite=2
则结果为foo2
等。
答案 0 :(得分:1)
如果两个表无关,则必须使用cross join
select t2.lite,
case
when t2.lite = 1 then t1.g1
when t2.lite = 2 then t1.g2
/* other cases if needed */
else null
end as gx
from pf_rows t1
cross join
pf_seq t2
请注意,如果表包含大量行,则此类查询根本不会执行。