当前位置:   article > 正文

Oracle、mysql、hive、sqlserver中行转列函数_sqlserver 行转列,逗号拼接

sqlserver 行转列,逗号拼接

样本数据

nameage
张三10
李四10
王五10

把10岁的名字转换到一行中

agename的集合
10张三,李四,王五

                   

Oracle中listagg() WITHIN GROUP ()  将多行合并成一行

  1. SELECT
  2. T.AGE
  3. LISTAGG (T.NAME, ',') WITHIN GROUP (ORDER BY T.NAME) NAME
  4. FROM
  5. STUDENT T
  6. WHERE
  7. T.AGE= '10'
  8. GROUP BY
  9. T.AGE

Mysql中

  1. SELECT
  2. T.AGE
  3. group_concat ( T.NAME ORDER BY AGE separator ',' )
  4. FROM
  5. STUDENT T
  6. WHERE
  7. T.AGE= '10'
  8. GROUP BY
  9. T.AGE

hive中

  1. SELECT
  2. id,CONCAT_WS(",",COLLECT_SET(T1.NAME))
  3. FROM wails t1
  4. GROUP BY t1.id

COLLECT_SET:函数只接受基本数据类型,它的主要作用是将某字段的值进行去重 汇总,产生 Array 类型字段

  1. age name
  2. 1 ["hah"]
  3. 2 ["hah"]
  4. 10 ["张三","李四","王五"]

CONCAT_WS(separator, str1, str2,...):分隔符将被加到被连接 的字符串之间

  1. age name
  2. 1 hah
  3. 2 hah
  4. 10 张三,李四,王五

CONCAT(string A, string B):返回输入字符串连接后的结果,支持任意个输入字 符串;

CONCAT_WS(",",collect_list(cast(customer_id as string)))

sqlserver行转列使用逗号拼接

详见我的另一篇博文stuff函数


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/429957
推荐阅读
相关标签
  

闽ICP备14008679号