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 ), data as ( select mainSegment, operatorSegment, case when mainSegment = operatorSegment then 'main:' + mainSegment else 'operator:' + operatorSegment end segmentId, operatorSegmentId, g as segmentLevel from s ) select count(*) over() as fseRowCount, * from data where segmentId in ( ) #applyFilter( _dataStore.filter )# and #applyFilter( _dataStore.search )# order by mainSegment, segmentLevel, operatorSegment offset #_dataStore.skip# rows fetch next #_dataStore.take# rows only for JSON AUTO, INCLUDE_NULL_VALUES