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列在另一列之下的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Hive SQL 中对一列中的数据进行分组并将其分布在另一列中?