比较sql中的两个或更多列

比较sql中的两个或更多列,sql,ms-access-2003,Sql,Ms Access 2003,数据库结构: 表名:问题 列: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 c

数据库结构:

  • 表名:
    问题
  • 列:
    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查询


提前谢谢。

正如我所说的,您需要将
ans
解码到适当的列中。 假设答案“A”的意思是:A列的返回值,答案“B”-B列的返回值等等,在Oracle中,我会这样做(不在实际表上测试):

帕维尔

像这样试试

select que,
  switch(
    ans = 'A', A
  , ans = 'B', B
  , ans = 'C', C
  , ans = 'D', D
  )
from table1


用例语句,比如:case ans当'A'时,然后A当'B'时,然后B…你只想得到que和ans吗?是的,我只需要输出que和正确的ans。
select que,
  switch(
    ans = 'A', A
  , ans = 'B', B
  , ans = 'C', C
  , ans = 'D', D
  )
from table1
   select que, IIf(ans='A', A, IIf(ans='B',B,IIf(ans='C',C,D))) from table1