|
19 | 19 | ) [t1]
|
20 | 20 | OUTER APPLY (
|
21 | 21 | SELECT TOP (1)
|
22 |
| - [a_GrandChildren_1].[ParentID], |
23 |
| - [a_GrandChildren_1].[ChildID], |
24 |
| - [a_GrandChildren_1].[GrandChildID] |
| 22 | + IIF([d].[not_null] IS NOT NULL, [d].[ParentID], NULL) as [ParentID], |
| 23 | + IIF([d].[not_null] IS NOT NULL, [d].[ChildID], NULL) as [ChildID], |
| 24 | + IIF([d].[not_null] IS NOT NULL, [d].[GrandChildID], NULL) as [GrandChildID] |
25 | 25 | FROM
|
26 |
| - [GrandChild] [a_GrandChildren_1] |
27 |
| - WHERE |
28 |
| - [x].[ParentID] = [a_GrandChildren_1].[ParentID] AND |
29 |
| - [x].[ChildID] = [a_GrandChildren_1].[ChildID] |
30 |
| - ) [t2] |
| 26 | + ( |
| 27 | + SELECT |
| 28 | + 1 as [c1] |
| 29 | + ) [t2] |
| 30 | + LEFT JOIN ( |
| 31 | + SELECT |
| 32 | + 1 as [not_null], |
| 33 | + [a_GrandChildren_1].[ParentID], |
| 34 | + [a_GrandChildren_1].[ChildID], |
| 35 | + [a_GrandChildren_1].[GrandChildID] |
| 36 | + FROM |
| 37 | + [GrandChild] [a_GrandChildren_1] |
| 38 | + WHERE |
| 39 | + [x].[ParentID] = [a_GrandChildren_1].[ParentID] AND |
| 40 | + [x].[ChildID] = [a_GrandChildren_1].[ChildID] |
| 41 | + ) [d] ON 1=1 |
| 42 | + ) [t3] |
31 | 43 | WHERE
|
32 |
| - NOT (([t1].[ParentID] = [t2].[ParentID] OR [t1].[ParentID] IS NULL AND [t2].[ParentID] IS NULL) AND NOT ([t1].[ParentID] IS NULL AND [t2].[ParentID] IS NOT NULL) AND NOT ([t1].[ParentID] IS NOT NULL AND [t2].[ParentID] IS NULL) AND ([t1].[ChildID] = [t2].[ChildID] OR [t1].[ChildID] IS NULL AND [t2].[ChildID] IS NULL) AND NOT ([t1].[ChildID] IS NULL AND [t2].[ChildID] IS NOT NULL) AND NOT ([t1].[ChildID] IS NOT NULL AND [t2].[ChildID] IS NULL) AND ([t1].[GrandChildID] = [t2].[GrandChildID] OR [t1].[GrandChildID] IS NULL AND [t2].[GrandChildID] IS NULL) AND NOT ([t1].[GrandChildID] IS NULL AND [t2].[GrandChildID] IS NOT NULL) AND NOT ([t1].[GrandChildID] IS NOT NULL AND [t2].[GrandChildID] IS NULL)) AND |
| 44 | + NOT (([t1].[ParentID] = [t3].[ParentID] OR [t1].[ParentID] IS NULL AND [t3].[ParentID] IS NULL) AND NOT ([t1].[ParentID] IS NULL AND [t3].[ParentID] IS NOT NULL) AND NOT ([t1].[ParentID] IS NOT NULL AND [t3].[ParentID] IS NULL) AND ([t1].[ChildID] = [t3].[ChildID] OR [t1].[ChildID] IS NULL AND [t3].[ChildID] IS NULL) AND NOT ([t1].[ChildID] IS NULL AND [t3].[ChildID] IS NOT NULL) AND NOT ([t1].[ChildID] IS NOT NULL AND [t3].[ChildID] IS NULL) AND ([t1].[GrandChildID] = [t3].[GrandChildID] OR [t1].[GrandChildID] IS NULL AND [t3].[GrandChildID] IS NULL) AND NOT ([t1].[GrandChildID] IS NULL AND [t3].[GrandChildID] IS NOT NULL) AND NOT ([t1].[GrandChildID] IS NOT NULL AND [t3].[GrandChildID] IS NULL)) AND |
33 | 45 | IIF([x].[ParentID] = (
|
34 | 46 | SELECT TOP (1)
|
35 |
| - [a_Children].[ChildID] |
| 47 | + IIF([d_1].[ChildID] IS NOT NULL, [d_1].[ChildID], 0) |
36 | 48 | FROM
|
37 |
| - [Child] [a_Children] |
38 |
| - WHERE |
39 |
| - [a_Parent].[ParentID] = [a_Children].[ParentID] |
| 49 | + ( |
| 50 | + SELECT |
| 51 | + 1 as [c1] |
| 52 | + ) [t4] |
| 53 | + LEFT JOIN [Child] [d_1] ON [a_Parent].[ParentID] = [d_1].[ParentID] |
40 | 54 | ), 0, 1) = 1
|
41 | 55 |
|
42 | 56 | BeforeExecute
|
|
60 | 74 | ) [t1]
|
61 | 75 | OUTER APPLY (
|
62 | 76 | SELECT TOP (1)
|
63 |
| - [a_GrandChildren_1].[ParentID], |
64 |
| - [a_GrandChildren_1].[ChildID], |
65 |
| - [a_GrandChildren_1].[GrandChildID] |
| 77 | + IIF([d].[not_null] IS NOT NULL, [d].[ParentID], NULL) as [ParentID], |
| 78 | + IIF([d].[not_null] IS NOT NULL, [d].[ChildID], NULL) as [ChildID], |
| 79 | + IIF([d].[not_null] IS NOT NULL, [d].[GrandChildID], NULL) as [GrandChildID] |
66 | 80 | FROM
|
67 |
| - [GrandChild] [a_GrandChildren_1] |
68 |
| - WHERE |
69 |
| - [x].[ParentID] = [a_GrandChildren_1].[ParentID] AND |
70 |
| - [x].[ChildID] = [a_GrandChildren_1].[ChildID] |
71 |
| - ) [t2] |
| 81 | + ( |
| 82 | + SELECT |
| 83 | + 1 as [c1] |
| 84 | + ) [t2] |
| 85 | + LEFT JOIN ( |
| 86 | + SELECT |
| 87 | + 1 as [not_null], |
| 88 | + [a_GrandChildren_1].[ParentID], |
| 89 | + [a_GrandChildren_1].[ChildID], |
| 90 | + [a_GrandChildren_1].[GrandChildID] |
| 91 | + FROM |
| 92 | + [GrandChild] [a_GrandChildren_1] |
| 93 | + WHERE |
| 94 | + [x].[ParentID] = [a_GrandChildren_1].[ParentID] AND |
| 95 | + [x].[ChildID] = [a_GrandChildren_1].[ChildID] |
| 96 | + ) [d] ON 1=1 |
| 97 | + ) [t3] |
72 | 98 | WHERE
|
73 |
| - NOT (([t1].[ParentID] = [t2].[ParentID] OR [t1].[ParentID] IS NULL AND [t2].[ParentID] IS NULL) AND NOT ([t1].[ParentID] IS NULL AND [t2].[ParentID] IS NOT NULL) AND NOT ([t1].[ParentID] IS NOT NULL AND [t2].[ParentID] IS NULL) AND ([t1].[ChildID] = [t2].[ChildID] OR [t1].[ChildID] IS NULL AND [t2].[ChildID] IS NULL) AND NOT ([t1].[ChildID] IS NULL AND [t2].[ChildID] IS NOT NULL) AND NOT ([t1].[ChildID] IS NOT NULL AND [t2].[ChildID] IS NULL) AND ([t1].[GrandChildID] = [t2].[GrandChildID] OR [t1].[GrandChildID] IS NULL AND [t2].[GrandChildID] IS NULL) AND NOT ([t1].[GrandChildID] IS NULL AND [t2].[GrandChildID] IS NOT NULL) AND NOT ([t1].[GrandChildID] IS NOT NULL AND [t2].[GrandChildID] IS NULL)) AND |
| 99 | + NOT (([t1].[ParentID] = [t3].[ParentID] OR [t1].[ParentID] IS NULL AND [t3].[ParentID] IS NULL) AND NOT ([t1].[ParentID] IS NULL AND [t3].[ParentID] IS NOT NULL) AND NOT ([t1].[ParentID] IS NOT NULL AND [t3].[ParentID] IS NULL) AND ([t1].[ChildID] = [t3].[ChildID] OR [t1].[ChildID] IS NULL AND [t3].[ChildID] IS NULL) AND NOT ([t1].[ChildID] IS NULL AND [t3].[ChildID] IS NOT NULL) AND NOT ([t1].[ChildID] IS NOT NULL AND [t3].[ChildID] IS NULL) AND ([t1].[GrandChildID] = [t3].[GrandChildID] OR [t1].[GrandChildID] IS NULL AND [t3].[GrandChildID] IS NULL) AND NOT ([t1].[GrandChildID] IS NULL AND [t3].[GrandChildID] IS NOT NULL) AND NOT ([t1].[GrandChildID] IS NOT NULL AND [t3].[GrandChildID] IS NULL)) AND |
74 | 100 | IIF([x].[ParentID] = (
|
75 | 101 | SELECT TOP (1)
|
76 |
| - [a_Children].[ChildID] |
| 102 | + IIF([d_1].[ChildID] IS NOT NULL, [d_1].[ChildID], 0) |
77 | 103 | FROM
|
78 |
| - [Child] [a_Children] |
79 |
| - WHERE |
80 |
| - [a_Parent].[ParentID] = [a_Children].[ParentID] |
| 104 | + ( |
| 105 | + SELECT |
| 106 | + 1 as [c1] |
| 107 | + ) [t4] |
| 108 | + LEFT JOIN [Child] [d_1] ON [a_Parent].[ParentID] = [d_1].[ParentID] |
81 | 109 | ), 0, 1) = 1
|
82 | 110 |
|
0 commit comments