为何SQL查询中concat函数会作为输出表头显示?如何解决?
HackerRank The Pads 问题:聚合查询的Concat结果被当作表头显示的问题
问题原因
第二个SELECT语句中的concat表达式未指定列别名,数据库会默认将整个表达式字符串作为列的表头名称,因此你会看到表头显示完整的concat语句内容。
解决方法
给concat的结果列添加别名(使用AS关键字),数据库就会用你指定的别名作为表头,而非原始表达式。
修改后的完整代码
select concat(name, '(', substr(occupation,1,1),')') from occupations order by name; select concat('There are a total of ', count(occupation), ' ', occupation,'s.') AS summary from occupations group by occupation order by count(occupation), occupation;
你也可以用空字符串作为别名(AS ''),不过指定有意义的别名(比如summary)会让代码更易读。在HackerRank的题目评判中,只要最终输出内容符合要求,表头名称不会影响得分,只要不再显示原始concat表达式即可。
内容的提问来源于stack exchange,提问作者Tanmay Sharma
相关产品推荐
相关产品推荐

