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
from
(select 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