表測驗
| ID | 姓名 |
|---|---|
| 1 | 美國廣播公司 |
| 2 | xyz |
一般來說,我曾經從以下查詢中獲取記錄 Select id,name from TEST。
| ID | 姓名 |
|---|---|
| 1 | 美國廣播公司 |
| 2 | xyz |
但現在我想為我的選擇查詢頂部的每一行創建一個副本
預期輸出:請建議我如何實作如下結果
| ID | 姓名 |
|---|---|
| 1 | 美國廣播公司 |
| 1 | 美國廣播公司 |
| 2 | xyz |
| 2 | xyz |
uj5u.com熱心網友回復:
您可以將您的表與包含您想要的副本數的序串列交叉連接。這是一個使用行內序串列的示例:
SELECT t1.id, t1.Name
FROM yourTable t1
CROSS JOIN (
SELECT 1 AS seq FROM dual UNION ALL
SELECT 2 FROM dual UNION ALL
SELECT 3 FROM dual
) t2
WHERE t2.seq <= 2
ORDER BY t1.id;
uj5u.com熱心網友回復:
對我來說,UNION(ALL)集合運算子似乎很簡單。
樣本資料:
SQL> select * from test;
ID NAME
---------- ----
1 abc
2 xyz
聯合所有:
SQL> select * from test
2 union all
3 select * from test;
ID NAME
---------- ----
1 abc
2 xyz
1 abc
2 xyz
SQL>
uj5u.com熱心網友回復:
一種選擇是使用自聯接,例如
SELECT t1.id, t1.name
FROM test t1, --> here "," represents "CROSS JOIN"
test t2
uj5u.com熱心網友回復:
CREATE table test(
id integer,
name VARCHAR2(4)
);
INSERT into test (id, name) VALUES (1,'ABC');
INSERT into test (id, name) VALUES (2,'XYZ');
with data as (select level l from dual connect by level <= 2)
select *
from test, data
order by id, l
/
uj5u.com熱心網友回復:
另一種選擇是 LATERAL
SELECT t.*
FROM test
, LATERAL (
SELECT id, name FROM DUAL
union all
SELECT id, name FROM DUAL
) t
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/458875.html
上一篇:按日期范圍內的周分組
