繁体   English   中英

使用 WITH 查询中的值创建表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM