将ORACLE中查询结果为空字符串的变成null该怎么做
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将ORACLE中查询结果为空字符串的变成null该怎么做相关的知识,希望对你有一定的参考价值。
参考技术A oracle怎么将表中的某列设置为空字符串,而不是null
nvl(列名,替代值)
或者
decode(列名,null,替代值,列名)
select
nvl(column_name,
'空')
from
table_name;
当column_name的值为空时,会输出'空',否则输出column_name的值
select
decode(column_name,
null,
'空',
column_name) 参考技术B 你的意思是如果C_BRKR_CDE字段的查询结果为空字符串时,要转换成默认值还是其他的意思?
将oracle 查询结果列拼接为字符串
表中的原始数据为
id name
1 a
1 b
1 c
2 a
2 b
3 a
3 c
.......
现在想查询显示的结果为
id name
1 a,b,c
2 a,b
3 a,c
.......
sql语句咋写 在线等谢谢!急!!!!!
insert into test values (1,'a')
insert into test values (1,'b')
insert into test values (1,'c')
insert into test values (2,'a')
insert into test values (2,'b')
insert into test values (3,'a')
insert into test values (3,'c')
select id,sys_connect_by_path(name,',') from (
select id,name, row_number() over(partition by id order by name)rn,
count(*) over(partition by id ) cnt from test
) a where level=cnt
start with rn=1 connect by prior id=id and prior rn=rn-1
测试后 可用。
一楼的回答其实最容易理解了。你把它修改成动态sql 就可以了。可以不受限制了。本回答被提问者采纳 参考技术B 个数有限,可以实现
select id, max(case when rk = 1 then name else '' end)
||','||max(case when rk = 2 then name else '' end)
||','||max(case when rk = 3 then name else '' end)
from (SELECT id, name,row_number() over(partition by id order by name) rk from tab) t
group by id追问
个数是不无限的,具体的值不确定,是根据关联关系出来的
追答那自己写存储过程吧,sql不是万能的。
参考技术C select t.id, WMSYS.WM_CONCAT(t.Name) name From table_name t GROUP BY t.id追问中文会出现乱码,咋解决
以上是关于将ORACLE中查询结果为空字符串的变成null该怎么做的主要内容,如果未能解决你的问题,请参考以下文章