2013-05-19 60 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; 
相关问题