2014-09-02 129 views
0

數據庫結構中的兩個或多個列:比較在SQL

  • 表名: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

使用case語句,如:ANS的情況下,當 'A' 然後當 'B' 次en b ... – Arvo 2014-09-02 08:56:46

+0

MYSQL或SQL SERVER – Sathish 2014-09-02 09:00:12

+0

M.s.訪問2003 – logisoul 2014-09-02 09:03:42

回答

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 
+0

感謝satish。有用 !! :) – logisoul 2014-09-02 09:36:48

0

正如我理解你需要解碼ans到正確的列。 假設答案「A」表示:列的返回值,答案「B」 - B等列的返回值,在Oracle中我會做這樣的(真實表未測試):

SELECT que, decode(ans, 'A', a, 'B', b, 'C', c, 'D', d, 'No answer') FROM question 

帕維爾