@@ -760,14 +760,10 @@ public override async Task Project_single_element_from_collection_with_OrderBy_T
760
760
AssertSql (
761
761
"""
762
762
SELECT (
763
- SELECT TOP(1) [o0].[CustomerID]
764
- FROM (
765
- SELECT TOP(1) [o].[CustomerID], [o].[OrderID]
766
- FROM [Orders] AS [o]
767
- WHERE [c].[CustomerID] = [o].[CustomerID]
768
- ORDER BY [o].[OrderID]
769
- ) AS [o0]
770
- ORDER BY [o0].[OrderID])
763
+ SELECT TOP(1) [o].[CustomerID]
764
+ FROM [Orders] AS [o]
765
+ WHERE [c].[CustomerID] = [o].[CustomerID]
766
+ ORDER BY [o].[OrderID])
771
767
FROM [Customers] AS [c]
772
768
""" ) ;
773
769
}
@@ -828,14 +824,10 @@ public override async Task Project_single_element_from_collection_with_OrderBy_T
828
824
AssertSql (
829
825
"""
830
826
SELECT (
831
- SELECT TOP(1) [o0].[CustomerID]
832
- FROM (
833
- SELECT TOP(1) [o].[CustomerID], [o].[OrderID]
834
- FROM [Orders] AS [o]
835
- WHERE [c].[CustomerID] = [o].[CustomerID]
836
- ORDER BY [o].[OrderID]
837
- ) AS [o0]
838
- ORDER BY [o0].[OrderID])
827
+ SELECT TOP(1) [o].[CustomerID]
828
+ FROM [Orders] AS [o]
829
+ WHERE [c].[CustomerID] = [o].[CustomerID]
830
+ ORDER BY [o].[OrderID])
839
831
FROM [Customers] AS [c]
840
832
WHERE [c].[CustomerID] = N'ALFKI'
841
833
""" ) ;
@@ -869,14 +861,10 @@ public override async Task Project_single_element_from_collection_with_multiple_
869
861
AssertSql (
870
862
"""
871
863
SELECT (
872
- SELECT TOP(1) [o0].[CustomerID]
873
- FROM (
874
- SELECT TOP(2) [o].[CustomerID], [o].[OrderID], [o].[OrderDate]
875
- FROM [Orders] AS [o]
876
- WHERE [c].[CustomerID] = [o].[CustomerID]
877
- ORDER BY [o].[OrderID], [o].[OrderDate] DESC
878
- ) AS [o0]
879
- ORDER BY [o0].[OrderID], [o0].[OrderDate] DESC)
864
+ SELECT TOP(1) [o].[CustomerID]
865
+ FROM [Orders] AS [o]
866
+ WHERE [c].[CustomerID] = [o].[CustomerID]
867
+ ORDER BY [o].[OrderID], [o].[OrderDate] DESC)
880
868
FROM [Customers] AS [c]
881
869
""" ) ;
882
870
}
@@ -892,14 +880,10 @@ await base
892
880
AssertSql (
893
881
"""
894
882
SELECT (
895
- SELECT TOP(1) [o0].[c]
896
- FROM (
897
- SELECT TOP(2) CAST(LEN([o].[CustomerID]) AS int) AS [c], [o].[OrderID], [o].[OrderDate]
898
- FROM [Orders] AS [o]
899
- WHERE [c].[CustomerID] = [o].[CustomerID]
900
- ORDER BY [o].[OrderID], [o].[OrderDate] DESC
901
- ) AS [o0]
902
- ORDER BY [o0].[OrderID], [o0].[OrderDate] DESC)
883
+ SELECT TOP(1) CAST(LEN([o].[CustomerID]) AS int)
884
+ FROM [Orders] AS [o]
885
+ WHERE [c].[CustomerID] = [o].[CustomerID]
886
+ ORDER BY [o].[OrderID], [o].[OrderDate] DESC)
903
887
FROM [Customers] AS [c]
904
888
""" ) ;
905
889
}
@@ -911,14 +895,10 @@ public override async Task Project_single_element_from_collection_with_multiple_
911
895
AssertSql (
912
896
"""
913
897
SELECT (
914
- SELECT TOP(1) [o0].[CustomerID]
915
- FROM (
916
- SELECT TOP(2) [o].[CustomerID], [o].[OrderDate]
917
- FROM [Orders] AS [o]
918
- WHERE [c].[CustomerID] = [o].[CustomerID]
919
- ORDER BY [o].[CustomerID], [o].[OrderDate] DESC
920
- ) AS [o0]
921
- ORDER BY [o0].[CustomerID], [o0].[OrderDate] DESC)
898
+ SELECT TOP(1) [o].[CustomerID]
899
+ FROM [Orders] AS [o]
900
+ WHERE [c].[CustomerID] = [o].[CustomerID]
901
+ ORDER BY [o].[CustomerID], [o].[OrderDate] DESC)
922
902
FROM [Customers] AS [c]
923
903
""" ) ;
924
904
}
@@ -930,15 +910,11 @@ public override async Task Project_single_element_from_collection_with_OrderBy_o
930
910
AssertSql (
931
911
"""
932
912
SELECT COALESCE((
933
- SELECT TOP(1) [s].[OrderID]
934
- FROM (
935
- SELECT TOP(1) [o0].[OrderID], [p].[ProductName]
936
- FROM [Order Details] AS [o0]
937
- INNER JOIN [Products] AS [p] ON [o0].[ProductID] = [p].[ProductID]
938
- WHERE [o].[OrderID] = [o0].[OrderID]
939
- ORDER BY [p].[ProductName]
940
- ) AS [s]
941
- ORDER BY [s].[ProductName]), 0)
913
+ SELECT TOP(1) [o0].[OrderID]
914
+ FROM [Order Details] AS [o0]
915
+ INNER JOIN [Products] AS [p] ON [o0].[ProductID] = [p].[ProductID]
916
+ WHERE [o].[OrderID] = [o0].[OrderID]
917
+ ORDER BY [p].[ProductName]), 0)
942
918
FROM [Orders] AS [o]
943
919
WHERE [o].[OrderID] < 10300
944
920
""" ) ;
@@ -953,17 +929,15 @@ public override async Task Project_single_element_from_collection_with_OrderBy_o
953
929
"""
954
930
SELECT [s0].[OrderID], [s0].[ProductID], [s0].[Discount], [s0].[Quantity], [s0].[UnitPrice]
955
931
FROM [Orders] AS [o]
956
- OUTER APPLY (
957
- SELECT TOP(1) [s].[OrderID], [s].[ProductID], [s].[Discount], [s].[Quantity], [s].[UnitPrice]
932
+ LEFT JOIN (
933
+ SELECT [s].[OrderID], [s].[ProductID], [s].[Discount], [s].[Quantity], [s].[UnitPrice]
958
934
FROM (
959
- SELECT TOP(1) [o0].[OrderID], [o0].[ProductID], [o0].[Discount], [o0].[Quantity], [o0].[UnitPrice], [ p].[ProductName]
935
+ SELECT [o0].[OrderID], [o0].[ProductID], [o0].[Discount], [o0].[Quantity], [o0].[UnitPrice], ROW_NUMBER() OVER(PARTITION BY [o0].[OrderID] ORDER BY [ p].[ProductName]) AS [row ]
960
936
FROM [Order Details] AS [o0]
961
937
INNER JOIN [Products] AS [p] ON [o0].[ProductID] = [p].[ProductID]
962
- WHERE [o].[OrderID] = [o0].[OrderID]
963
- ORDER BY [p].[ProductName]
964
938
) AS [s]
965
- ORDER BY [s].[ProductName]
966
- ) AS [s0]
939
+ WHERE [s].[row] <= 1
940
+ ) AS [s0] ON [o].[OrderID] = [s0].[OrderID]
967
941
WHERE [o].[OrderID] < 10250
968
942
""" ) ;
969
943
}
@@ -1344,16 +1318,14 @@ public override async Task SelectMany_with_multiple_Take(bool async)
1344
1318
"""
1345
1319
SELECT [o1].[OrderID], [o1].[CustomerID], [o1].[EmployeeID], [o1].[OrderDate]
1346
1320
FROM [Customers] AS [c]
1347
- CROSS APPLY (
1348
- SELECT TOP(3) [o0].[OrderID], [o0].[CustomerID], [o0].[EmployeeID], [o0].[OrderDate]
1321
+ INNER JOIN (
1322
+ SELECT [o0].[OrderID], [o0].[CustomerID], [o0].[EmployeeID], [o0].[OrderDate]
1349
1323
FROM (
1350
- SELECT TOP(5) [o].[OrderID], [o].[CustomerID], [o].[EmployeeID], [o].[OrderDate]
1324
+ SELECT [o].[OrderID], [o].[CustomerID], [o].[EmployeeID], [o].[OrderDate], ROW_NUMBER() OVER(PARTITION BY [o].[CustomerID] ORDER BY [o].[OrderID]) AS [row ]
1351
1325
FROM [Orders] AS [o]
1352
- WHERE [c].[CustomerID] = [o].[CustomerID]
1353
- ORDER BY [o].[OrderID]
1354
1326
) AS [o0]
1355
- ORDER BY [o0].[OrderID]
1356
- ) AS [o1]
1327
+ WHERE [o0].[row] <= 3
1328
+ ) AS [o1] ON [c].[CustomerID] = [o1].[CustomerID]
1357
1329
""" ) ;
1358
1330
}
1359
1331
0 commit comments