本を読んでいるときに、この LINQ クエリに出くわしました。
var binary = new int[] { 0, 1 };
var q = from b4 in binary
from b3 in binary
from b2 in binary
from b1 in binary
select String.Format("{0}{1}{2}{3}", b4, b3, b2, b1);
foreach (var element in q)
Console.WriteLine(element);
上記の LINQ の結果は次のようになります。
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
これが SQL Server でどのようになるかを知りたかったのです。
私が試したこと:
create table LINQ(x bit)
insert LINQ select 0
insert LINQ select 1
create table LINQ(x bit, y bit)
insert LINQ select 0,1
上記の一時テーブルを使用して、LINQPADを使用してみました(SQLまたはラムダのバージョンは提供しません)。クロスジョイン、フルジョインをやってみました。LINQ と同じ結果が得られる SQL を取得できませんでした。