2017-07-27 26 views
1

如何使值以不同方式顯示?如何根據SQL的值查看不同的數據

例子: 我有一個表「Feelings」一個叫「Happy」 如果我select * from 'Happy'它會帶回列的值1, 2, 3(與用戶ID顯示哪些用戶是感覺) 1代表是,2代表沒有,我想表不顯示1,2,3而是表現出肯定的,沒有3代表也許 ,也許

我怎麼會去了解,使本?

+1

歡迎來到StackOverflow。你試過什麼了? – dg99

+0

通過在SQL上購買書:) –

+0

'案件ID當1那麼'是'當2那麼'沒'當3那麼'也許'結束作爲名稱'。也許。或者在表格中添加一個名稱列,用SELECT代替ID。你的問題不是特別清楚。 –

回答

0

如果你只是有一個表稱爲Feelings和一個名爲Happy只標識列,你可以試試下面的查詢:

SELECT 
    user_id, 
     CASE HAPPY 
     WHEN '1' THEN 'Yes' 
     WHEN '2' THEN 'No' 
     WHEN '3' THEN 'Maybe' 
     ELSE 'Other' 
    END AS 'feeling_happy' 
FROM FEELINGS 

否則,如果你有2個表,一個與Happy列名爲Feelings這有標識,並呼籲Happy與一列的識別碼與定義的狀態在另一列(我們稱之爲happy_x)另一個表,那麼你可以簡單的使用下面的查詢:

SELECT 
    f.user_id, h.happy_x 
FROM Feelings f 
    INNER JOIN Happy AS h 
     ON h.id = f.happy 
+0

我相信她有另一個鏈接到用戶ID的表。其中她希望基於1,2,3值的關聯用戶標識。我認爲她最終需要的是在感覺和用戶之間使用WHERE子句進行簡單連接。 – Isaiah3015

+0

好點 - 我會將它作爲選項進行編輯。 – Phil

+0

在sql中只有一個這會給出一個錯誤 – Hogan

1
CASE HAPPY 
    WHEN '1' THEN 'Yes' 
    WHEN '2' THEN 'No' 
    WHEN '3' THEN 'Maybe' 
    ELSE 'Other' 
END AS 'Happy' 
0

雖然您可以在此處使用CASE作爲其他答案,但您也可以使用連接 - 查找值的表或CTE或VALUES子句。即使是存儲過程中的臨時表。

這將是這樣的:

SELECT user_id, COALESCE(lookup.value,'Unknown') as happy 
FROM feelings 
LEFT JOIN (
    VALUES 
     ('1','Yes'), 
     ('2','No'), 
     ('3','Maybe') 
) AS lookup(k,value) ON feelings.happy = lookup.k 

在一個表中使用連接和存儲相關的信息是一個做事的更SQL的方式,並提供了許多好處,包括更容易維護和經常更快的執行。

相關問題