繁体   English   中英

我如何编写此查询

[英]How do i write this query

这是问题所在

使用CASE表达式,显示作者的姓氏与姓氏,并用空格分隔为“ is:”。 根据状态列中的值将先前的结果连接到一个口号。 如果状态为“ CA”,则显示“晴天”。 如果状态为“ 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语句,第二列的标题为Author Characteristics。 我只需要填写一个字段,因此信息仅包含一个标题。

只是将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"

尝试

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在另一列。

为了使结果列表中有一列,还需要在CONCAT()函数内包括CASE语句。 但是在ORDER BY子句中,由于CASE状态对它们进行排序,因此您需要再次使用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`

在“ concat”函数中包含“ case”语句

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM