2020-- ------------------------------------------------------------------------------------------------------------------------------
2121PRINT ' Detect range overlaps'
2222
23- SELECT *
23+ SELECT TopicID,
24+ RangeLeft,
25+ RangeRight
2426FROM Topics OuterTopics
2527WHERE (
2628 SELECT COUNT (TopicID)
2729 FROM Topics InnerTopics
2830 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
3133 )
3234 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 )
3537 )
3638) > 0
3739
@@ -54,11 +56,11 @@ WHERE (
5456 WHERE TopicID != OuterTopics .TopicID
5557 AND ( RangeLeft
5658 IN ( OuterTopics .RangeLeft ,
57- OuterTopics .RangeRight
59+ ISNULL ( OuterTopics .RangeRight , - 1 )
5860 )
59- OR RangeRight
61+ OR ISNULL ( RangeRight, 0 )
6062 IN ( OuterTopics .RangeLeft ,
61- OuterTopics .RangeRight
63+ ISNULL ( OuterTopics .RangeRight , - 1 )
6264 )
6365 )
6466) > 0
@@ -74,7 +76,7 @@ SELECT TopicID,
7476 RangeLeft,
7577 RangeRight
7678FROM Topics
77- WHERE RangeLeft >= RangeRight
79+ WHERE RangeLeft >= ISNULL ( RangeRight, - 1 )
7880
7981-- ------------------------------------------------------------------------------------------------------------------------------
8082-- DETECT PARENT ID MISMATCHES
@@ -88,4 +90,4 @@ SELECT TopicID,
8890 AttributeValue
8991FROM Attributes
9092WHERE AttributeKey = ' ParentID'
91- AND AttributeValue != dbo .GetParentID (TopicID)
93+ AND AttributeValue != CAST ( dbo .GetParentID (TopicID) AS VARCHAR ( 255 ) )
0 commit comments