假设我有下表:
|---------------------|
| id |
|---------------------|
| 12 |
|---------------------|
| 390 |
|---------------------|
| 13 |
|---------------------|
我想基于id
列的映射创建另一列,例如:
12 -> qwert
13 -> asd
390 -> iop
所以我基本上希望查询基于该映射创建一个列,我的最终表将是:
|---------------------|---------------------|
| id | col |
|---------------------|---------------------|
| 12 | qwert |
|---------------------|---------------------|
| 390 | iop |
|---------------------|---------------------|
| 13 | asd |
|---------------------|---------------------|
我在python字典中有这张地图。
这可能吗?
(基本上是pandas.map
)
答案 0 :(得分:1)
您似乎希望“修复” PostgreSQL数据库中已有的某些数据。
您可以使用此技术包括数据:
WITH foo AS (VALUES (12, 'qwert'), (13, 'asd'), (390, 'iop'))
SELECT table.id, foo.column2
FROM table
JOIN foo ON (foo.column1 = table.id)
您可以将其作为UPDATE
语句来执行,但这会很棘手。编写具有所需内容的SELECT
语句,然后使用CREATE TABLE new_table AS SELECT...