我被困住了,似乎没有找到合适的foo在Google上搜索答案。
我要做的是从列中获取值,该列基于另一列的值:
我有两张桌子:
pID | name | period
0 abc 1
1 def 2
2 ghi 3
和
pID | p1 | p2 | p3
0 10 20 30
1 40 50 60
2 70 80 90
我想做一个查询,显示所有pID,它们的名称,句点以及该期间的值。输出应为:
pID | name | period | NewVal
0 abc 1 10
1 def 2 50
2 ghi 3 90
我希望很清楚我正在尝试做什么!
谢谢* 1000
答案 0 :(得分:0)
对于静态定义的列,您可以使用如下查询:
SELECT t1.pID, t1.name, t1.period,
CASE t1.period
WHEN 1 THEN t2.p1
WHEN 2 THEN t2.p2
WHEN 3 THEN t2.p3
END AS NewVal
FROM Table1 AS t1
LEFT JOIN Table2 AS t2 ON t1.pID = t2.PID
答案 1 :(得分:0)
好吧,如果句点数量固定,那么您可以尝试使用CASE
:
select t1.pID, t1.name, t1.period,
CASE t1.period
WHEN 1 THEN t2.p1
WHEN 2 THEN t2.p2
WHEN 3 THEN t2.p3
END as NewVal
from t1
inner join t2 on t2.pID = t1.pID;