20
20
-- ------------------------------------------------------------------------------------------------------------------------------
21
21
PRINT ' Detect range overlaps'
22
22
23
- SELECT *
23
+ SELECT TopicID,
24
+ RangeLeft,
25
+ RangeRight
24
26
FROM Topics OuterTopics
25
27
WHERE (
26
28
SELECT COUNT (TopicID)
27
29
FROM Topics InnerTopics
28
30
WHERE ( RangeLeft < OuterTopics .RangeLeft
29
- AND RangeRight < OuterTopics .RangeRight
30
- AND RangeRight > OuterTopics .RangeLeft
31
+ AND ISNULL ( RangeRight, - 1 ) < ISNULL ( OuterTopics .RangeRight , - 1 )
32
+ AND ISNULL ( RangeRight, - 1 ) > OuterTopics .RangeLeft
31
33
)
32
34
OR ( RangeLeft > OuterTopics .RangeLeft
33
- AND RangeRight > OuterTopics .RangeRight
34
- AND RangeLeft < OuterTopics .RangeRight
35
+ AND ISNULL ( RangeRight, - 1 ) > ISNULL ( OuterTopics .RangeRight , - 1 )
36
+ AND RangeLeft < ISNULL ( OuterTopics .RangeRight , - 1 )
35
37
)
36
38
) > 0
37
39
@@ -54,11 +56,11 @@ WHERE (
54
56
WHERE TopicID != OuterTopics .TopicID
55
57
AND ( RangeLeft
56
58
IN ( OuterTopics .RangeLeft ,
57
- OuterTopics .RangeRight
59
+ ISNULL ( OuterTopics .RangeRight , - 1 )
58
60
)
59
- OR RangeRight
61
+ OR ISNULL ( RangeRight, 0 )
60
62
IN ( OuterTopics .RangeLeft ,
61
- OuterTopics .RangeRight
63
+ ISNULL ( OuterTopics .RangeRight , - 1 )
62
64
)
63
65
)
64
66
) > 0
@@ -74,7 +76,7 @@ SELECT TopicID,
74
76
RangeLeft,
75
77
RangeRight
76
78
FROM Topics
77
- WHERE RangeLeft >= RangeRight
79
+ WHERE RangeLeft >= ISNULL ( RangeRight, - 1 )
78
80
79
81
-- ------------------------------------------------------------------------------------------------------------------------------
80
82
-- DETECT PARENT ID MISMATCHES
@@ -88,4 +90,4 @@ SELECT TopicID,
88
90
AttributeValue
89
91
FROM Attributes
90
92
WHERE AttributeKey = ' ParentID'
91
- AND AttributeValue != dbo .GetParentID (TopicID)
93
+ AND AttributeValue != CAST ( dbo .GetParentID (TopicID) AS VARCHAR ( 255 ) )
0 commit comments