数据库结构:
question
qid, que, a, b, c, d, ans
虚拟数据1:
Qid-1
Que-what is capital of india ?
A- mumbai
B- delhi
C-kolkata
D-chennai
Ans-B
虚拟数据2:
Qid-2
Que-formula of water ?
A- h2O
B- h30
C-h40
D-h50
Ans-A
期望的输出:
Que ans
what is capital of india ? Delhi
Formula of water ? H20
如何将最后一列(ans
)与其他列(a, b, c, d
)进行比较?
我需要一个SQL查询..
提前致谢。
答案 0 :(得分:0)
我理解你需要将ans
解码为正确的列。
假设回答' A'意思是:列a的返回值,回答' B' - 在Oracle中返回列b等的值,我这样做(未在真实表上测试):
SELECT que, decode(ans, 'A', a, 'B', b, 'C', c, 'D', d, 'No answer') FROM question
的Pawel
答案 1 :(得分:0)
试试这个
select que,
switch(
ans = 'A', A
, ans = 'B', B
, ans = 'C', C
, ans = 'D', D
)
from table1
OR
select que, IIf(ans='A', A, IIf(ans='B',B,IIf(ans='C',C,D))) from table1