问题描述
TAB_B 有一列。
我的预期输出应该是,
这里 col_x 应该有 code(TAB_B) = '08' 时的数据 和 当 code(TAB_B) = '36' 时 col_y 应该有数据。
我试过的都行不通,
SELECT
a.col1,a.col2,a.col3,a.col4,substr(a.col5,13,3) as col_x,3) as col_y
from TAB_A a
JOIN TAB_B b on b.code = '08'
JOIN TAB_B b on b.code = '36'
任何人都可以提出最佳解决方案。
解决方法
您的要求不是很清楚,但您似乎正在寻找 cross join 和 case when 子句
SELECT
a.col1,a.col2,a.col3,a.col4,case when code(TAB_B) = '08' then substr(a.col5,13,3) else null end as col_x,case when code(TAB_B) = '36'then substr(a.col5,3) else null end as col_y,from TAB_A a
JOIN TAB_B
;