PostgreSQL 行转列问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HSH205572/article/details/82979534

案列:

SELECT
    frwybs,
    t1.dept_evaluation_labels
FROM
    hunan_frk.each_corporate_portrait_label t1
WHERE
    t1.dept_evaluation_labels IS NOT NULL;

解决方案:

--方法一:unnest(数组,分隔符)
SELECT
    frwybs,
    UNNEST (
        string_to_array(
            t1.dept_evaluation_labels,
            ','
        )
    ) dept_evaluation_labels
FROM
    hunan_frk.each_corporate_portrait_label t1
WHERE
    t1.dept_evaluation_labels IS NOT NULL;

--方法二:regexp_split_to_table(字符串,分隔符)
SELECT
    frwybs,
    regexp_split_to_table(
        t1.dept_evaluation_labels,
        ','
    ) dept_evaluation_labels
FROM
    hunan_frk.each_corporate_portrait_label t1
WHERE
    t1.dept_evaluation_labels IS NOT NULL;

--其中字符串变数组的方法:
--方法一:
SELECT
    frwybs,
    string_to_array(
        t1.dept_evaluation_labels,
        ','
    )
FROM
    hunan_frk.each_corporate_portrait_label t1
WHERE
    t1.dept_evaluation_labels IS NOT NULL;

--方法二:
SELECT
    frwybs,
    regexp_split_to_array(
        t1.dept_evaluation_labels,
        ','
    )
FROM
    hunan_frk.each_corporate_portrait_label t1
WHERE
    t1.dept_evaluation_labels IS NOT NULL;

猜你喜欢

转载自blog.csdn.net/HSH205572/article/details/82979534