oracle笔记

wm_concat(xx1,xx2,xx3)

以“,”进行连接 返回结果“xx1,xx2,xx3”

decode(条件,值1,返回值1,值2,返回值2,缺省)

“条件”表示要查询的字段 如果查询结果为:值1,则返回:返回值1,如果查询结果为:值2,则返回:返回值2,如果查询结果为:值3,则返回:返回值3,其他情况返回defalut
distinct(xx)

对查询结果进行去重 在写的过程中遇到一个问题

 select 

    wm_concat(distinct(value1)) as string1,

    wm_concat(decode(conlumn1,value1,return1,value2,return2,value3,default) ) as string2,
    wm_concat(decode(conlumn2,value1,return1,value2,return2,value3,default) )  as string3
from (tables结果集)

这三个字段来源于同一张表,查询后封装成一个对象

期望结果:查询结果按照一一对应的顺序连接

实际结果:连接的顺序不是按照一一对应的顺序

原因:distinct 影响了value1的顺序

解决方法:把distinct移到tables结果集中

select 

    wm_concat(table1.the_value) as string1,

    wm_concat(decode(conlumn1,value1,return1,value2,return2,value3,default) ) as string2,

    wm_concat(decode(conlumn2,value1,return1,value2,return2,value3,default) )  as string3

fromselect distinct(value1)as the_value),xxx,xxx  from xxx where xxxxxxx)table1

sql中的<> 表示不等于 select * from x <> 1 结果为x不等于1以及x不为null

oracle永久注册码:
Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqz
serial Number:601769
password:xs374ca

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值