@@ -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
}
@@ -1336,6 +1310,44 @@ WHERE CAST(LEN([c].[CustomerID]) AS int) >= CAST(LEN([o].[CustomerID]) AS int)
1336
1310
""" ) ;
1337
1311
}
1338
1312
1313
+ public override async Task SelectMany_with_multiple_Take ( bool async )
1314
+ {
1315
+ await base . SelectMany_with_multiple_Take ( async) ;
1316
+
1317
+ AssertSql (
1318
+ """
1319
+ SELECT [o1].[OrderID], [o1].[CustomerID], [o1].[EmployeeID], [o1].[OrderDate]
1320
+ FROM [Customers] AS [c]
1321
+ INNER JOIN (
1322
+ SELECT [o0].[OrderID], [o0].[CustomerID], [o0].[EmployeeID], [o0].[OrderDate]
1323
+ FROM (
1324
+ SELECT [o].[OrderID], [o].[CustomerID], [o].[EmployeeID], [o].[OrderDate], ROW_NUMBER() OVER(PARTITION BY [o].[CustomerID] ORDER BY [o].[OrderID]) AS [row]
1325
+ FROM [Orders] AS [o]
1326
+ ) AS [o0]
1327
+ WHERE [o0].[row] <= 3
1328
+ ) AS [o1] ON [c].[CustomerID] = [o1].[CustomerID]
1329
+ """ ) ;
1330
+ }
1331
+
1332
+ public override async Task Select_with_multiple_Take ( bool async )
1333
+ {
1334
+ await base . Select_with_multiple_Take ( async) ;
1335
+
1336
+ AssertSql (
1337
+ """
1338
+ @p0='3'
1339
+ @p='5'
1340
+
1341
+ SELECT TOP(@p0) [c0].[CustomerID], [c0].[Address], [c0].[City], [c0].[CompanyName], [c0].[ContactName], [c0].[ContactTitle], [c0].[Country], [c0].[Fax], [c0].[Phone], [c0].[PostalCode], [c0].[Region]
1342
+ FROM (
1343
+ SELECT TOP(@p) [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
1344
+ FROM [Customers] AS [c]
1345
+ ORDER BY [c].[CustomerID]
1346
+ ) AS [c0]
1347
+ ORDER BY [c0].[CustomerID]
1348
+ """ ) ;
1349
+ }
1350
+
1339
1351
public override async Task FirstOrDefault_over_empty_collection_of_value_type_returns_correct_results ( bool async )
1340
1352
{
1341
1353
await base . FirstOrDefault_over_empty_collection_of_value_type_returns_correct_results ( async) ;
0 commit comments