--表如下 :
--基本结构说明下。
--FLevel 是多少 FNumber 前面就有多少个空格。
--FGroupNumber 相同即为同一类。 就是要同一类的进行排序,但显示 要把前面相同的都排在前面。具体看下面想要的结果
Create Table #tmp_Test (FNumber varchar(100),FGroupNumber varchar(50),FLevel int)
Insert into #tmp_Test values ('01','01',0)
Insert into #tmp_Test values ('02','02',0)
Insert into #tmp_Test values (' 03.02','03',2)
Insert into #tmp_Test values ('03','03',0)
Insert into #tmp_Test values (' 01','01',1)
Insert into #tmp_Test values (' 01.01','01',2)
Insert into #tmp_Test values (' 01.01.01','01',3)
Insert into #tmp_Test values (' 01.01.01.01','01',4)
Insert into #tmp_Test values (' 01.02','01',2)
Insert into #tmp_Test values (' 02.01.01.01','02',4)
Insert into #tmp_Test values (' 01.02.01.01','01',4)
Insert into #tmp_Test values (' 01.02.03','01',3)
Insert into #tmp_Test values (' 01.03','01',2)
Insert into #tmp_Test values (' 01.02.04','01',3)
/*相要结果 如下表
FNumber FGroupNumber FLevel
--------------------------------------------------------
01 01 0
01 01 1
01.01 01 2
01.01.01 01 3
01.01.01.01 01 4
01.02 01 2
01.02.01.01 01 4
01.02.03 01 3
01.02.04 01 3
01.03 01 2
02 02 0
02.01.01.01 02 4
03 03 0
03.02 03 2*/
drop table #tmp_Test
--基本结构说明下。
--FLevel 是多少 FNumber 前面就有多少个空格。
--FGroupNumber 相同即为同一类。 就是要同一类的进行排序,但显示 要把前面相同的都排在前面。具体看下面想要的结果
Create Table #tmp_Test (FNumber varchar(100),FGroupNumber varchar(50),FLevel int)
Insert into #tmp_Test values ('01','01',0)
Insert into #tmp_Test values ('02','02',0)
Insert into #tmp_Test values (' 03.02','03',2)
Insert into #tmp_Test values ('03','03',0)
Insert into #tmp_Test values (' 01','01',1)
Insert into #tmp_Test values (' 01.01','01',2)
Insert into #tmp_Test values (' 01.01.01','01',3)
Insert into #tmp_Test values (' 01.01.01.01','01',4)
Insert into #tmp_Test values (' 01.02','01',2)
Insert into #tmp_Test values (' 02.01.01.01','02',4)
Insert into #tmp_Test values (' 01.02.01.01','01',4)
Insert into #tmp_Test values (' 01.02.03','01',3)
Insert into #tmp_Test values (' 01.03','01',2)
Insert into #tmp_Test values (' 01.02.04','01',3)
/*相要结果 如下表
FNumber FGroupNumber FLevel
--------------------------------------------------------
01 01 0
01 01 1
01.01 01 2
01.01.01 01 3
01.01.01.01 01 4
01.02 01 2
01.02.01.01 01 4
01.02.03 01 3
01.02.04 01 3
01.03 01 2
02 02 0
02.01.01.01 02 4
03 03 0
03.02 03 2*/
drop table #tmp_Test
select Fnumber=space(flevel)+fnumber,fgroupnumber,flevel from #tmp_test
order by FGroupNumber
02.01.01.01 02 4
02 的应该要到 02组里啊。可 上面的SQL 就 把 02.01.01.01 放到 01 组里了
FROM #tmp_Test
ORDER BY FGroupNumber,LTRIM(FNumber)
FROM #tmp_Test
ORDER BY Replace(FNumber,' ',''),FGroupNumber