如何构建这个请求查询
问题描述:
我有一个使用SQL请求 EXP以填补两个不同的数据一个一个列:如何构建这个请求查询
My_Table1
## CL1 ## ## CL2 ## ## CL3 ##
---------- ---------- ----------
- DATA1 X1
- DATA2 X2
- DATA4 X3
- DATA5 X4
* *
* *
- DATA200 X200
TABLE_2
## CLX ##
----------
are you under 20 yeras old ?
are you male or female ?
我想结果如下:
## CL1 ## ## CL2 ## ## CL3 ##
---------- ---------- ----------
- DATA1 X1 are you under 20 yeras old ?
- DATA2 X2 are you male or female ?
- DATA4 X3 are you under 20 yeras old ?
- DATA5 X4 are you male or female ?
* *
* *
- DATA200 X200 are you under 20 yeras old ?
如何使用SQL请求? databae是Oracle
答
SELECT CL1, CL2, CLX
FROM (SELECT CL1, CL2, ROW_NUMBER() OVER (ORDER BY CL1 ASC) AS RN
FROM My_Table
) AS T1_WITH_RN
JOIN (SELECT CLX, ROW_NUMBER() OVER (ORDER BY CLX DESC) AS RN
) AS T2_WITH_RN ON MOD(T1_WITH_RN.RN, 2) + 1 = T2_WITH_RN.RN
这是如何工作的
- 首先使用查询及窗口函数ROW_NUMBER()的递增整数分配给查询结果
- 然后我们做同样的表中的两(我们预计只有两个RN这里值1和2),并加入他们的第一台国防部的行号2加一(这将有值1或2)
根据您所展示的内容我们无法真正回答您的问题。例如,这会做你要求什么 - 以数据在一列,其重复3次
SELECT column_Text FROM table
UNION ALL
SELECT column_Text FROM table
UNION ALL
SELECT column_Text FROM table
答
SELECT m.*,
t.clx
FROM (SELECT m.*,
ROWNUM AS rn
FROM My_Table1 m) m
INNER JOIN
(SELECT t.*,
ROWNUM - 1 AS rn,
COUNT(*) AS mx
FROM Table_2 t) t
ON (MOD(m.rn, t.mx) = t.rn);
你可以尝试使用while循环在SQL – Chuck
,你怎么给我一个样品例如? – Yassine
没有更多细节,无法回答您的问题。什么是你的数据库的结构/模型。它包含哪些数据(输入)预期输出是什么。我知道你在你的问题中有输入和输出,但这没有帮助,因为没有办法理解如何从另一个派生。这只是表格中的3倍吗? – Hogan