我在PostgreSQL中有一个表:
| id | country| type |
| 1 | USA | FOO |
| 2 | null | BAR |
我想将country
列的列类型从text
更改为array
,并仅将非空值强制转换为新类型,以使表的外观如下所示:
| id | country | type |
| 1 | {USA} | FOO |
| 2 | null | BAR |
到目前为止,我已经得到了这个表达式,它可以将任何值转换到数组中。
ALTER TABLE my_table
ALTER COLUMN country TYPE TEXT[]
USING ARRAY[country];
如何使用USING
表达式只转换非空值?
2条答案
按热度按时间s3fp2yjn1#
简单地做
z9smfwbn2#
可以使用CASE表达式