postgresql常用函数

create table search.t_test_20200108(
c_id varchar(300),
c_field varchar(300)
)
insert into search.t_test_20200108 values(‘1’,‘医疗器械类,化妆品类,药品类,食品类’);

concat_ws 第一个参数为符号 以这个符号进行拼接
SELECT
concat_ws(’,’,
(case when c_field like ‘%医疗器械%’ then ‘医疗器械生产’ end),(case when c_field like ‘%化妆品%’ then ‘化妆品生产’ end),(case when c_field like ‘%药品%’ then ‘药品生产’ end),(case when c_field like ‘%食品%’ then ‘食品生产’ end))
as
new_field
FROM
search.t_test_20200108 A

结果: 医疗器械生产,化妆品生产,药品生产,食品生产

concat 拼接所有参数中的字符串
SELECT
concat(’,’,
(case when c_field like ‘%医疗器械%’ then ‘医疗器械生产’ end),(case when c_field like ‘%化妆品%’ then ‘化妆品生产’ end),(case when c_field like ‘%药品%’ then ‘药品生产’ end),(case when c_field like ‘%食品%’ then ‘食品生产’ end))
as
new_field
FROM
search.t_test_20200108 A

结果:,医疗器械生产化妆品生产药品生产食品生产

– 将一个字段拆分成多个根据自己需要的字段
select
(case when c_field like ‘%医疗器械%’ then ‘医疗器械’ else ‘’ end) as qylx1,
(case when c_field like ‘%化妆品%’ then ‘化妆品’ else ‘’ end) as qylx2
from
search.t_test_20200108 A
WHERE
A.c_id = ‘1’;

create table search.t_test_2020010801(
c_id varchar(300),
c_field varchar(300),
c_name varchar(300)
)

insert into search.t_test_2020010801 values(‘3’,‘食品类’,‘C某’);

string_agg 把表达式变成一个字符串

select string_agg(c_field,’,’) from search.t_test_2020010801
结果:医疗器械类,化妆品类,食品类

array_agg(expression) 把表达式变成一个数组 一般配合 array_to_string() 函数使用 跟上述string_agg效果相仿

select array_to_string(array_agg(c_field),’,’) from search.t_test_2020010801

结果:医疗器械类,化妆品类,食品类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值