|assoc_name|
------------
|meena,malhotra
|sita,sharma
|assoc_name|assoc_last_name|
----------------------------
|meena | malhotra |
|sita | sharma |
SELECT split_part(assoc_name,',','1') AS Part1 from mytable;
这可行,但是我如何将输出保存到其他列?
答案 0 :(得分:2)
只需对SPLIT_PART
进行两次调用,就每个所需的列进行一次调用:
SELECT
SPLIT_PART(assoc_name, ',', 1) AS assoc_name,
SPLIT_PART(assoc_name, ',', 2) AS assoc_last_name
FROM mytable;
如果要将此视图保留在数据库表中,请尝试使用INSERT INTO ... SELECT
,并使用上面的选择:
INSERT INTO someOtherTable (assoc_name, assoc_last_name)
SELECT
SPLIT_PART(assoc_name, ',', 1),
SPLIT_PART(assoc_name, ',', 2)
FROM mytable;
要处理上述对SPLIT_PART
的调用中的一个/两个都可能返回NULL
且目标列不可为空的情况,请考虑使用COALESCE
:
INSERT INTO someOtherTable (assoc_name, assoc_last_name)
SELECT
COALESCE(SPLIT_PART(assoc_name, ',', 1), ''),
COALESCE(SPLIT_PART(assoc_name, ',', 2), '')
FROM mytable;