为sql查询分配自定义标签

时间:2018-03-05 20:06:05

标签: sql oracle

我认为这是一个非常简单的问题,但我在这里或通过在线搜索找不到答案。

我正在运行计数查询,但我遇到了值标签和列标题问题

查询

SELECT
mail_code AS "code",
COUNT(mail_code) AS "count"
FROM data.base
GROUP BY mail_code
;

我回来了:

C       Count
-       -----
Y       110
X       785
Z       92

问题:

  1. 如何让第一个变量(代码)显示其全名而不是单个字母?
  2. 如何更改Y,X和Z以阅读“电话”,“邮件”和“电子邮件”......或其他任何内容?
  3. mail_code变量的长度是1个字节...这就是为什么只有第一个字母显示为我的varname?

    ......我最初被警告说,根据我的头衔,它可能会被低估。好的,但我试着在别处寻找答案而找不到它,IE我尝试了尽职调查。

    提前谢谢。

2 个答案:

答案 0 :(得分:0)

大多数情况下,他们会查找具有外键 - 主键关系的查找表。即在包含code_nameexplanation

的表格中写下解释

值为X , phone; Y, mailZ , email分别为

并使用SQL语句加入它们:

select d.mail_code as "code", c.explanation as "communication type", count(1) as "count"
  from data_base d inner join codes c on ( d.mail_code = c.mail_code )
 group by d.mail_code, c.explanation;

其中DDL如下所示:

create table codes(mail_code varchar2(1) primary key,explanation varchar2(15));
create table data_base( mail_code varchar2(1) references codes(mail_code));

Demo

答案 1 :(得分:0)

谢谢大家,我有大约75%的路程。

语法:

COLUMN mail_code FORMAT A10
SELECT
    DECODE (mail_code,
        'X', 'mail',
        'Y', 'phon',
        'Z', 'emai') AS "code",
COUNT(*) AS "count"
FROM data.base
GROUP BY mail_code
;

返回的

code    count
----    -----
mail    110
phon    785
emai    92

需要双引号b / c Oracle。它会将名称更改为代码'我引用双引号,但是我可以选择w双引号。

谢谢大家的帮助!