postgresql-pg数据库中的列转行操作

postgresql-pg数据库中的列转行操作_第1张图片
首先需要知道一个函数:concat_ws

select ord,num,concat_ws('=',ord,num) from cx.over_test;

postgresql-pg数据库中的列转行操作_第2张图片


postgresql-pg数据库中的列转行操作_第3张图片
如果我们需要这样查询一条数据:
当给出一个数字,我们首先需要判断其是ord还是num,然后再取其对应的值的话,显示此时这个表就不满足了,我们必须将其转换为:

SELECT
	r,
	regexp_split_to_table( concat_ws ( ',', 'ord', 'num' ), ',' ) age_type,
	regexp_split_to_table(concat_ws(',',coalesce("ord",'1'),coalesce("num",1)),',') age_rate 
FROM
	cx.over_test;

postgresql-pg数据库中的列转行操作_第4张图片

你可能感兴趣的:(数据库方面,数据库,postgresql,sql,pgsql)