sql中的2列在另一列之下

Posted

技术标签:

【中文标题】sql中的2列在另一列之下【英文标题】:2 columns one below another in sql 【发布时间】:2019-12-19 16:38:41 【问题描述】:
select cap2 as captain from data group by cap2
union all
select cap3 as captain from data group by cap3

我收到了这个错误

ORA-12704: 字符集不匹配

你能帮我解决这个问题吗

【问题讨论】:

向我们展示表定义。 顺便说一句,使用SELECT DISTINCT 来获取不同的行,而不是GROUP BY。但是在这里你应该使用UNION 而不是UNION ALL 来消除重复,只需select cap2 as captain from data UNION select cap3 as captain from data 我在使用 UNION 时遇到同样的错误 cap2 和 cap3 是相同的数据类型吗?如果没有,可能就是这样。 我的第二条评论是提示/建议。我的第一条评论是一条指令! 【参考方案1】:

看看这是否有帮助。

我想这是你的情况:

SQL> create table test
  2    (cap2 varchar2(10),
  3     cap3 nvarchar2(10));

Table created.

SQL> insert into test values ('A', 'B');

1 row created.

这是您当前的查询:

SQL> select cap2 from test
  2  union
  3  select cap3 from test;
select cap2 from test
       *
ERROR at line 1:
ORA-12704: character set mismatch

这是您可能会尝试做的 - 将 to_char 函数应用于 nvarchar2 列:

SQL> select cap2 from test
  2  union
  3  select to_char(cap3) from test;

CAP2
----------------------------------------
A
B

SQL>

【讨论】:

你的回答对我帮助很大 我很高兴。

以上是关于sql中的2列在另一列之下的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 唯一的自动增量列在另一列的上下文中

SQL - 计算一个列值在另一列中的出现

如何在 Hive SQL 中对一列中的数据进行分组并将其分布在另一列中?

根据其在另一列中的存在情况在 SQL 中打印值

在 SQL 中,我可以在另一列中获取与它们没有关联的特定值的列中的值吗?

SQL:在一个列中查找在另一列中也不唯一的非唯一记录