with s as ( select distinct mainSegment, mainSegment as operatorSegment, 0 operatorSegmentId, 1 g from tbl_DW_1fsOperators#_tableSuffix# where operatorSegmentId > 0 union all select distinct mainSegment, operatorSegment, operatorSegmentId, 2 g from tbl_DW_1fsOperators#_tableSuffix# where operatorSegmentId > 0 ), preData as ( select mainSegment, operatorSegment, case when mainSegment = operatorSegment then 'main:' + mainSegment else 'operator:' + operatorSegment end segmentId, operatorSegmentId, g as segmentLevel from s ), data as ( select *, row_number() over ( order by mainSegment, segmentLevel, operatorSegment ) as displayRank from preData ) #forjson( 'data', attributes.datastore, 'displayRank' )#