2014-01-08 45 views
-1

對這個最可能很容易的問題有很大的挑戰,希望有人能夠幫助我,非常感謝您提前!返回不同條件的行

我有一個帶有字段(A,B,C,D,E,F和G)的MySql表和示例數據,如下所示;

A | B | C | D | E | F | G

1 | 0 | 0 | K | M | V | K

0 | 1 | 0 | H | L | P | Z

0 | 0 | 1 | G | W | Y | X

我想要做一個SQL -query將這樣工作:

如果A爲1,然後返回現場A和d

OR

如果B 1,然後返回現場B和˚F

OR

如果C爲1,然後返回現場C和E

因此查詢的輸出將是這樣的;

A | B | C | D | E | F

1 | | | K | |

| 1 | | | | P |

| | 1 | | W |

這可能嗎?

非常感謝您的幫助,謝謝。

親切的問候,

JH

+1

'case ... when' – SQLMason

+2

如果多於一個'(A,B,C)'是1;或者沒有? – eggyal

回答

1

將這項工作?

SELECT 
CASE WHEN A = 1 THEN A ELSE NULL END AS A, 
CASE WHEN B = 1 THEN B ELSE NULL END AS B, 
CASE WHEN C = 1 THEN C ELSE NULL END AS C, 
CASE WHEN A = 1 THEN D ELSE NULL END AS D, 
CASE WHEN C = 1 THEN E ELSE NULL END AS E, 
CASE WHEN B = 1 THEN F ELSE NULL END AS F 

FROM YourTable 
+0

從示例中,OP看起來像要返回所有列,但在不適用的列中有空值。 –

+0

你說得對,我剛剛改變了我的答案。謝謝 –