[英]Creating a table with values from a WITH Query
我想创建一个具有特定值的表。
Something like this
:
SELECT * FROM (VALUES ('Data1', 'one'), ('Data2', 'two') ) AS t ("ColumnName1","ColumnName2");
但是我不想使用手动值,而是想使用WITH QUERY 中的值
Like this
:
WITH Test AS
(
Select table1.id FROM table1
)
SELECT * FROM (VALUES ('Data1', Test.id), ('Data2', Test.id) ) AS t ("ColumnName1","ColumnName2");
如何访问 WITH 查询中的数据?
你像任何其他桌子一样使用
CREATE TABLE table1 (id varchar(4))
INSERT INTO Table1 VALUES ('one'),('two')
WITH Test AS ( Select table1.id FROM table1 ) SELECT t1."ColumnName1",test.id as "ColumnName2" FROM test CROSS JOIN (SELECT 'Data1' AS "ColumnName1" UNION SELECT 'Data2') t1;
列名1 | 列名2:--------- |:---------- 数据1 | 一个数据2 | 一个数据1 | 两个数据2 | 二
db<> 在这里摆弄
您可以横向加入 CTE
create table Table1 ( id varchar(30) ) insert into Table1 values ('one'), ('two'), ('three'), ('party') with CTE_IDLIST AS ( select id, row_number() over (order by null) as rn from Table1 ) select q.* from CTE_IDLIST list cross join lateral (values ('Data'||list.rn, list.id)) as q("ColumnName1","ColumnName2")
列名1 | 列名2:--------- |:---------- 数据1 | 一个数据2 | 两个数据3 | 三数据4 | 派对
db<> 在这里摆弄
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.