Sql server 2012 从多个不带联接sql的表中选择数据
我有两个SQL表。表A和表B。这两个表分别有10000条记录 表A中有3列=> A列,B列,C列 表B中有3列=> 柱状物,柱状物,柱状物 我的要求是选择ColumnA和ColumnD及其原始记录(10000) 我的问题是如何仅选择ColumnA和ColumnD 第一个问题是我不能连接这两个表,因为这两个表是分开的Sql server 2012 从多个不带联接sql的表中选择数据,sql-server-2012,Sql Server 2012,我有两个SQL表。表A和表B。这两个表分别有10000条记录 表A中有3列=> A列,B列,C列 表B中有3列=> 柱状物,柱状物,柱状物 我的要求是选择ColumnA和ColumnD及其原始记录(10000) 我的问题是如何仅选择ColumnA和ColumnD 第一个问题是我不能连接这两个表,因为这两个表是分开的 第二个问题是我不能合并这两个表,因为我的要求是得到两列,但当我合并时,我只有一列合并了两列。您可以通过行编号创建一个动态联接列,然后在该列上联接: WITH cte1 AS (
第二个问题是我不能合并这两个表,因为我的要求是得到两列,但当我合并时,我只有一列合并了两列。您可以通过
行编号
创建一个动态联接列,然后在该列上联接:
WITH cte1 AS (
SELECT ColumnA, ROW_NUMBER() OVER (ORDER BY ColumnA) rn
FROM TableA
),
cte2 AS (
SELECT ColumnD, ROW_NUMBER() OVER (ORDER BY ColumnD) rn
FROM TableB
)
SELECT t1.ColumnA, t2.ColumnD
FROM cte t1
INNER JOIN cte t2
ON t1.rn = t2.rn;
当然,这只是使用A和D列中的任意顺序对10K记录进行配对。如果您对这两列应该如何配对有一些特定的逻辑,请告诉我们。最重要的是,你不能轻易摆脱连接或并集的概念,将这两个列组合在一起。谢谢你的观点,尽管你的答案是我要求的100%,但在稍作修改后,我得到的结果是因为你的观点。因此,我将把这标记为一个答案。