【发布时间】:2017-08-10 13:11:48
【问题描述】:
declare @result table (FirstFieldID int, FirstFieldIDName varchar(100), SecondFieldID int, SecondFieldName varchar(100),ObjectID int, ObjectName varchar(100), SubSort int ,TotalStudents int)
insert into @result
select 1000003, 'Gender', 1000125, 'Female', -1 ,'-1', -4, 3
union select 1000003, 'Gender', 1000125, 'Female', 220 ,'Grade 12', -3, 2
union select 1000003, 'Gender', 1000125, 'Female', 200 ,'Grade 10', -3, 1
union select 1000003, 'Gender', 1000126, 'Male', -1 ,'-1', -4, 5
union select 1000003, 'Gender', 1000126, 'Male', 210 ,'Grade 11', -3, 3
union select 1000003, 'Gender', 1000126, 'Male', 220 ,'Grade 12', -3, 1
union select 1000003, 'Gender', 1000126, 'Male', 140 ,'Grade 4', -3, 1
union select 1000021, 'Title I Indicator', 1000380, 'Title I Indicator', -1, '-1', -4, 7
union select 1000021, 'Title I Indicator', 1000380, 'Title I Indicator', 210 ,'Grade 11', -3, 3
union select 1000021, 'Title I Indicator', 1000380, 'Title I Indicator', 220 ,'Grade 12', -3, 3
union select 1000021, 'Title I Indicator', 1000380, 'Title I Indicator', 200 ,'Grade 10', -3, 1
union select 1000010, 'Birth Country', 1000285, 'US', -1 ,'-1', -4, 4
union select 1000010, 'Birth Country', 1000285, 'US', 210 ,'Grade 11', -3, 2
union select 1000010, 'Birth Country', 1000285, 'US', 220 ,'Grade 12', -3, 2
select * from @result
+--------------+-------------------+---------------+-------------------+----------+------------+---------+---------------+
| FirstFieldID | FirstFieldIDName | SecondFieldID | SecondFieldName | ObjectID | ObjectName | SubSort | TotalStudents |
+--------------+-------------------+---------------+-------------------+----------+------------+---------+---------------+
| 1000003 | Gender | 1000125 | Female | -1 | -1 | -4 | 3 |
| 1000003 | Gender | 1000125 | Female | 220 | Grade 12 | -3 | 2 |
| 1000003 | Gender | 1000125 | Female | 200 | Grade 10 | -3 | 1 |
| 1000003 | Gender | 1000126 | Male | -1 | -1 | -4 | 5 |
| 1000003 | Gender | 1000126 | Male | 210 | Grade 11 | -3 | 3 |
| 1000003 | Gender | 1000126 | Male | 220 | Grade 12 | -3 | 1 |
| 1000003 | Gender | 1000126 | Male | 140 | Grade 4 | -3 | 1 |
| 1000021 | Title I Indicator | 1000380 | Title I Indicator | -1 | -1 | -4 | 7 |
| 1000021 | Title I Indicator | 1000380 | Title I Indicator | 210 | Grade 11 | -3 | 3 |
| 1000021 | Title I Indicator | 1000380 | Title I Indicator | 220 | Grade 12 | -3 | 3 |
| 1000021 | Title I Indicator | 1000380 | Title I Indicator | 200 | Grade 10 | -3 | 1 |
| 1000010 | Birth Country | 1000285 | US | -1 | -1 | -4 | 4 |
| 1000010 | Birth Country | 1000285 | US | 210 | Grade 11 | -3 | 2 |
| 1000010 | Birth Country | 1000285 | US | 220 | Grade 12 | -3 | 2 |
+--------------+-------------------+---------------+-------------------+----------+------------+---------+---------------+
目前我的数据会像上面那样。 当 ObjectID 和 ObjectName 为 -1 时,TotalStudents 将在组中按降序排列。否则 ObjectName 为升序。 期待下面的数据。
+--------------+-------------------+---------------+-------------------+----------+------------+---------+---------------+
| FirstFieldID | FirstFieldIDName | SecondFieldID | SecondFieldName | ObjectID | ObjectName | SubSort | TotalStudents |
+--------------+-------------------+---------------+-------------------+----------+------------+---------+---------------+
| 1000021 | Title I Indicator | 1000380 | Title I Indicator | -1 | -1 | -4 | 7 |
| 1000021 | Title I Indicator | 1000380 | Title I Indicator | 200 | Grade 10 | -3 | 1 |
| 1000021 | Title I Indicator | 1000380 | Title I Indicator | 210 | Grade 11 | -3 | 3 |
| 1000021 | Title I Indicator | 1000380 | Title I Indicator | 220 | Grade 12 | -3 | 3 |
| 1000003 | Gender | 1000126 | Male | -1 | -1 | -4 | 5 |
| 1000003 | Gender | 1000126 | Male | 140 | Grade 4 | -3 | 1 |
| 1000003 | Gender | 1000126 | Male | 220 | Grade 12 | -3 | 1 |
| 1000003 | Gender | 1000126 | Male | 210 | Grade 11 | -3 | 3 |
| 1000010 | Birth Country | 1000285 | US | -1 | -1 | -4 | 4 |
| 1000010 | Birth Country | 1000285 | US | 210 | Grade 11 | -3 | 2 |
| 1000010 | Birth Country | 1000285 | US | 220 | Grade 12 | -3 | 2 |
| 1000003 | Gender | 1000125 | Female | -1 | -1 | -4 | 3 |
| 1000003 | Gender | 1000125 | Female | 200 | Grade 10 | -3 | 1 |
| 1000003 | Gender | 1000125 | Female | 220 | Grade 12 | -3 | 2 |
+--------------+-------------------+---------------+-------------------+----------+------------+---------+---------------+
谢谢。
【问题讨论】:
-
ozh.github.io/ascii-tables 从您的输入中制作 ascii 表会更易于阅读。
-
试了很多方法,求发帖
-
您的帖子未包含您的代码或研究。如果您添加它,也许有人可以帮助您修复它。
-
@HABO,当 FirstFieldID = -1 和 ObjectID = -1 和 SecondFieldID = -1 然后 TotalStudents 结束 desc 时,请从 #ResultTable 中选择 *,当 FirstFieldID != -1 和ObjectID = -1 and SecondFieldID != -1 then TotalStudents end desc, case when FirstFieldID != -1 and ObjectID != -1 then SecondFieldID end asc
标签: sql-server sql-server-2008 tsql