为sql查询分配自定义标签

问题描述 投票:0回答:2

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

我正在运行计数查询,并且在使用值标签和列标题时遇到问题

查询是

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以读取“电话”,“邮件”和“电子邮件”......或其他任何内容?

mail_code变量的长度是1个字节...这就是为什么只有第一个字母显示为我的varname?

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

先感谢您。

sql oracle
2个回答
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


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

Oracle需要双引号b / c Oracle。它可以将名称改为'代码'和双引号,但随着所有大写字母(CODE)的出现,我可以选择w双引号。

谢谢大家对此的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.