2013-05-19 76 views
0

這裏是連接在一起的問題我怎樣寫這個查詢

使用CASE表達式,顯示作者的名字並置他用空格隔開姓「是「。根據state列中的值將以前的結果連接到口號。如果狀態爲「CA」,則顯示「Sunny」。如果州是「CO」,則顯示「稀有」。如果狀態是「FL」,則顯示「桃子」。如果狀態是「NY」,則顯示「喜歡蘋果派」。將該欄命名爲「作者特徵」。按「作者特徵」對結果進行排序。

這是我寫的代碼到目前爲止

select concat(au_fname, au_lname, ' is: '), 
case state 
    when 'CA' 
     then 'Sunny' 
    when 'CO' 
     then 'a rarity' 
    when 'FL' 
     then 'a peach' 
    when 'NY' 
     then 'like apple pie' 
    else 'state' 
end 
AS "Author Characteristics" 
FROM authors 
ORDER BY 1; 

我遇到的問題是輸出給我兩列,一個從CONCAT聲明題爲和第二列的標題是作者特點。我只需要獲得一個領域,這樣所有信息都只有一個標題。

+0

格魯吉亞是桃狀態。佛羅里達州是陽光狀態。但是,我們有更好的桃子 –

+0

爲什麼你不選擇一個答案? – reformed

回答

2

只需將case作爲CONCAT的另一個參數即可。

select concat(au_first, au_last, ' is: ', case state 
when 'CA' then 'Sunny' when 'CO' then 'a rarity' when 'FL' then 'a peach' 
when 'NY' then 'like apple pie' else 'state' end) AS "Author Characteristics" 
2

嘗試

select concat(au_fname, au_lname, ' is: ', 
case state 
    when 'CA' 
     then 'Sunny' 
    when 'CO' 
     then 'a rarity' 
    when 'FL' 
     then 'a peach' 
    when 'NY' 
     then 'like apple pie' 
    else 'state' 
end) 
AS "Author Characteristics" 
FROM authors 
ORDER BY 1; 

這將包括在concat聲明 '國家' 的值。在您的原始代碼中,您最後有兩列,因爲concat聲明導致一列,case導致另一列。

1

爲了在結果列表中包含一列,還需要在CONCAT()函數中包含CASE語句。但是在ORDER BY子句中,您需要再次使用CASE語句,因爲您要按狀態對它們進行排序。訂購ORDER BY 1的記錄將對au_fname上的記錄進行排序。

select concat(au_fname, ' ',au_lname, ' is: ', 
       case state 
        when 'CA' then 'Sunny' 
        when 'CO' then 'a rarity' 
        when 'FL' then 'a peach' 
        when 'NY' then 'like apple pie' 
        else 'state' 
       end) `Author Characteristics` 
FROM authors 
ORDER BY case state 
      when 'CA' then 'Sunny' 
      when 'CO' then 'a rarity' 
      when 'FL' then 'a peach' 
      when 'NY' then 'like apple pie' 
      else 'state' end 

,但如果我誤解了這個問題,你可以直接通過ALIAS命令他們,

ORDER BY `Author Characteristics` 
+0

我會像你一樣回答,但你打敗了我。無論如何,這裏是小提琴:http://sqlfiddle.com/#!2/c6177/10,希望它有幫助。 – acdcjunior

+0

@acdcjunior感謝小提琴':)' –

1

包括 'CONCAT' 中的 '情況' 語句功能

select concat(au_fname, au_lname, ' is: ', 
case state 
when 'CA' 
    then 'Sunny' 
when 'CO' 
    then 'a rarity' 
when 'FL' 
    then 'a peach' 
when 'NY' 
    then 'like apple pie' 
else 'state' 
end) 
AS "Author Characteristics" 
FROM authors 
ORDER BY 1; 
相關問題