什么会.SelectMany(x => x)在Sql中

时间:2016-03-30 15:39:47

标签: c# sql-server

在C#中,您可以拥有以下代码:

urllib

所以我想知道,如何在sql中完成同样的工作?

在表格中(表1 |表2):

| 1 | 4 |
| 2 | 5 |
| 3 | 6 |

最终结果(同一栏中表1和表2的结果):

| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |

那么可以在不使用临时表的情况下完成吗?

是否可以在简单的sql语句中执行此操作?

1 个答案:

答案 0 :(得分:1)

由于SQL Server不支持“嵌套”结果集,因此“展平”它们也没有意义。

你的C#示例需要两个列表,包装它们,然后展平它们。这实际上可以重写为简单的连接:

string[] OneList = Stuff[0].Concat(Stuff[1]).ToArray();

SQL Server支持此操作---连接结果集--- 。您可以使用UNION ALL

SELECT column1 FROM table1
UNION ALL
SELECT column1 FROM table2
ORDER BY column1

注意:

  • UNION ALL保留重复项,UNION过滤掉它们。

  • 如果column1table2中有不同的名称,则您的ORDER BY子句必须使用第一个SELECT子句中的列名。

    < / LI>