PostgreSQL 使用 VALUES() 函数生成数据临时表
·
语句:
SELECT * FROM
( VALUES
('001,', '阿阳', 13),
('002,', '阿震', 14),
('002,', '东哥', 15),
('002,', '端木', 14)
) AS TEMP (id, name, age)

别名TEMP后要设置具体的字段名(id, name, age).不设置的话就是这样.

生产实践:
1. 临时表转化物理表
select * into manu_demo from (
VALUES
('001', '阿阳', 13),
('002', '阿震', 14),
('003', '东哥', 15),
('004', '端木', 14)
) AS TEMP (id, name, age);
select * from manu_demo;
id | name | age
001 | 阿阳 | 13
002 | 阿震 | 14
003 | 东哥 | 15
004 | 端木 | 14
tip: 因为 select * into manu_demo 方式创建表无法指定字段类型,创建出来的字段类型宽泛且不绝对准确.慎用

2. 临时表关联查询
SELECT
a.*, b.name
FROM manu_info a
LEFT JOIN
( VALUES
('001', '阿阳', 13),
('002', '阿震', 14),
('003', '东哥', 15),
('004', '端木', 14)
) AS TEMP (id, name, age) on a.id = TEMP.id
3. 临时表修改数据
update manu_info main
set name= tmp.name
from (values
('001', '阿阳', 13),
('002', '阿震', 14),
('003', '东哥', 15),
('004', '端木', 14)
) as TEMP (id, name, age)
where main.id= TEMP.id
更多推荐




所有评论(0)