如何构建这个请求查询

问题描述:

我有一个使用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

+0

你可以尝试使用while循环在SQL – Chuck

+0

,你怎么给我一个样品例如? – Yassine

+0

没有更多细节,无法回答您的问题。什么是你的数据库的结构/模型。它包含哪些数据(输入)预期输出是什么。我知道你在你的问题中有输入和输出,但这没有帮助,因为没有办法理解如何从另一个派生。这只是表格中的3倍吗? – Hogan

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 
+0

好吧我会用deatails解释:让桌子有200条记录和11列我最后一个是servey列应该是这样的你是男性还是女性?而下一张唱片是你20岁以下的年纪?一个接一个,直到最后一个记录 – Yassine

+0

同样的事情是这样的:INSERT INTO my_table VALUES(从table1中选择不同的my_colmn) – Yassine

+0

@Yassine - 仍然不知道你的意思 - **你必须发布数据模型,例如输入和示例输出**(清除细节的其他信息也可以帮助。) – Hogan

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);