2014-11-03 57 views
1

由於我是新手,我不知道如何正確命名此問題。因SQL Server中的行值而引起的查詢分隔列

假設我有一張如下所示的水果表。

id color |name 
------------------------ 
1 red  |apple 
2 yellow |banana 
3 red  |strawberry 
4 red  |red grapes 
5 yellow |mango 

在SQL Server什麼類型的SELECT語句做我必須代碼產生這樣的查詢結果:

red  | yellow 
-------------------- 
apple  |banana 
strawberry |mango 
red grapes | 

我試圖在Microsoft Access數據庫的查詢。

我只想做一個查詢,將紅色水果與黃色水果分開。

+0

說明不清楚。請詳細說明。 – 2014-11-03 04:25:17

+1

我有上面的表,ID,顏色,名稱列。我想運行一個查詢,在那裏我會將這些列的紅色和黃色以及相應的果實作爲結果。那可能嗎? – 2014-11-03 04:27:32

+0

感謝您的澄清。這隻會是紅色和黃色? – 2014-11-03 04:30:09

回答

1

這不完全是你想要的結果集,但它可能足夠接近?

SELECT (SELECT Name FROM Fruit Where Color = 'red'), 
     (SELECT Name FROM Fruit Where Color = 'yellow') 

UPDATE

上述解決方案不訪問工作,但下面的人應:

SELECT 
IIF(Color = 'red', Name, '') AS 'Red', 
IIF(Color = 'yellow', Name, '') AS 'Yellow' 
FROM Fruits; 
+0

我使用的MsAccess版本似乎不接受此語法。 – 2014-11-03 04:38:51

+0

啊,對不起,因爲你寫了MSSql我讀了下面的Access。 – 2014-11-03 04:44:22

+0

我還不夠清楚,對不起。無論如何,謝謝你的回答。可能嗎?我想要做的就是生成一個查詢,將紅色水果與黃色水果分開。 – 2014-11-03 04:47:33

1

試試這個

SELECT Isnull(CASE color 
       WHEN 'red' THEN name 
       END, '') red, 
     Isnull(CASE color 
       WHEN 'yellow' THEN name 
       END, '') yellow 
FROM fruits 
+0

這將在MSACCESS中工作嗎? – 2014-11-03 04:48:07

+0

@RicardoGreen正確地標記你的問題!你問**「什麼類型的mssql中的select語句是否需要編碼」**這將在MSSQL中工作我不確定MSACCESS – 2014-11-03 04:50:39

+0

對不起,我不知道MsSQL與MSACCESS sql不同。 – 2014-11-03 04:52:09