如何将列添加到选择中的行

时间:2016-08-10 19:00:57

标签: sql

说我有这张桌子

| Col |
-------
| ABC |
| DEF |

我应该写什么查询来获得这个结果(不是字面上的结果,而是一般的方法)?

| Col | Col2 |
--------------
| ABC |   0  |
| ABC |   1  |
| DEF |   0  |
| DEF |   1  |

3 个答案:

答案 0 :(得分:1)

除非我遗漏了某些内容,否则这应该会为您提供您正在寻找的结果:

Select      Col, Col2
From        YourTable
Cross Join  (Select 0 As Col2 Union Select 1 As Col2) X
Order By    Col, Col2

答案 1 :(得分:0)

我猜你想为每个组合配对两列。您的问题含糊不清,并不是特定于问题。这是我的假设。

我猜这个查询可以做到:

Select Table1.Col1, Table2.Col2 from Table1 LEFT JOIN Table2 on 1=1

这样,你就可以将table1中的每一行与table2中的每一行配对。

编辑,没有table2:

Select Table1.Col1, Constructed.Col1 from Table1 LEFT JOIN 
(Select 1 as Col1 UNION Select 2 as Col1 UNION 
Select 7 as Col1 UNION Select 14 as Col1) Constructed on 1=1

答案 2 :(得分:0)

您可以测试查询,这是您想要的吗?

select * from
(select col1, 0 b from table) table1
union all (select col1, 1 b from table) order by 1;