什么会.SelectMany(x => x) be in Sql



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

string[][] Stuff = new string[] { new string[] {"1", "2", "3"}, new string[] {"4", "5", "6"} };
string[] OneList = Stuff.SelectMany(x => x).ToArray();

所以我想知道,在sql中怎么能做到这一点?

表中(表1 |表2):

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

最终结果(同列表1和表2的结果):

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

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

在一个简单的sql语句中可以做到这一点吗?

由于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子句中的列名。

相关内容

最新更新