收录日期:2020/12/04 07:24:48 时间:2016/06/10 13:52:50 标签:基础类
class表中bigclass等于classname的记录表示大类,不相等的表示是小类,每个类别都有排序号,现在要按照大类,大类中的小类按照各自的排序号显示,请问应该怎么写? 

1 社区报道 社区报道 1
2 社区动态 社区报道 2
3 社区逸事 社区报道 3
4 外警见闻 社区报道 4
5 经典案例 社区报道 5
6 百姓观点 百姓观点 2
7 社区文化 社区文化 3
8 百姓文学 社区文化 2
9 书法绘画 社区文化 3
10 摄影作品 社区文化 4
11 社区影视 社区文化 5
12 理论研究 理论研究 4
13 装备器材 装备器材 5
14 软件资料 软件资料 6
15 网络知识 网络知识 7
16 法律法规 法律法规 8
17 系统程序 软件资料 2
18 办公软件 软件资料 3
19 媒体工具 软件资料 4
20 EBOOK 软件资料 5
21 驱动程序 软件资料 6
22 网络工具 软件资料 7
23 桌面工具 软件资料 8
24 刑法 法律法规 2
25 民法 法律法规 3
26 其他法律 法律法规 4
27 法律解释 法律法规 5
28 专用软件 软件资料 9
42 社区新闻 网络知识 2
43 111 百姓观点 2
44 222 装备器材 2
45 333 理论研究 2


第一列是自增长ID
第二列是小类名称,如果第二列和第三列名称相同,则表示是一个大类
第三列是大类名称
第四列是排序号,表示该大类下面的排序号;

select * from class order by bigclass,classname
不知是不是这个意思
第四列是排序号,表示该大类下面的排序号;?这个是不是要的结果
declare @ta table(id int,name varchar(10),name1 varchar(10),num int)
insert @ta
select 1, '社区报道', '社区报道', 1 union all
select 2, '社区动态', '社区报道', 2 union all
select 3, '社区逸事', '社区报道', 3 union all
select 4, '外警见闻', '社区报道', 4 union all
select 5, '经典案例', '社区报道', 5 union all
select 6, '百姓观点', '百姓观点', 2 union all
select 7, '社区文化', '社区文化', 3 union all
select 8, '百姓文学', '社区文化', 2 union all
select 9, '书法绘画', '社区文化', 3 union all
select 10, '摄影作品', '社区文化', 4 union all
select 11, '社区影视', '社区文化', 5

select id,name,name1,num=case when name=name1 then num
else (select count(*) from @ta where name1=a.name1 and id<=a.id) end
 from @ta a
(11 行受影响)
id          name       name1      num
----------- ---------- ---------- -----------
1           社区报道       社区报道       1
2           社区动态       社区报道       2
3           社区逸事       社区报道       3
4           外警见闻       社区报道       4
5           经典案例       社区报道       5
6           百姓观点       百姓观点       2
7           社区文化       社区文化       3
8           百姓文学       社区文化       2
9           书法绘画       社区文化       3
10          摄影作品       社区文化       4
11          社区影视       社区文化       5

(11 行受影响)

以上的得出第4列的值
不对,你把我上面列的那些数据都加进去之后,就知道了
上面那几行本来就是按照这个顺序排列的
你要的結果是怎樣的?
declare @ta table(id int,name varchar(10),name1 varchar(10),num int)
insert @ta
select 1, '社区报道', '社区报道', 1 union all
select 2, '社区动态', '社区报道', 2 union all
select 3, '社区逸事', '社区报道', 3 union all
select 4, '外警见闻', '社区报道', 4 union all
select 5, '经典案例', '社区报道', 5 union all
select 6, '百姓观点', '百姓观点', 2 union all
select 7, '社区文化', '社区文化', 3 union all
select 8, '百姓文学', '社区文化', 2 union all
select 9, '书法绘画', '社区文化', 3 union all
select 10, '摄影作品', '社区文化', 4 union all
select 11, '社区影视', '社区文化', 5

select id,name,name1,num=case when name=name1 then num
else (select id from @ta where name=a.name) end
 from @ta a


(11 行受影响)
id          name       name1      num
----------- ---------- ---------- -----------
1           社区报道       社区报道       1
2           社区动态       社区报道       2
3           社区逸事       社区报道       3
4           外警见闻       社区报道       4
5           经典案例       社区报道       5
6           百姓观点       百姓观点       2
7           社区文化       社区文化       3
8           百姓文学       社区文化       8
9           书法绘画       社区文化       9
10          摄影作品       社区文化       10
11          社区影视       社区文化       11

(11 行受影响)

1 社区报道 社区报道 1
2 社区动态 社区报道 2
3 社区逸事 社区报道 3
4 外警见闻 社区报道 4
5 经典案例 社区报道 5

6 百姓观点 百姓观点 2
43 111 百姓观点 2

7 社区文化 社区文化 3
8 百姓文学 社区文化 2
9 书法绘画 社区文化 3
10 摄影作品 社区文化 4
11 社区影视 社区文化 5

12 理论研究 理论研究 4
45 333 理论研究 2

13 装备器材 装备器材 5
44 222 装备器材 2

14 软件资料 软件资料 6
17 系统程序 软件资料 2
18 办公软件 软件资料 3
19 媒体工具 软件资料 4
20 EBOOK 软件资料 5
21 驱动程序 软件资料 6
22 网络工具 软件资料 7
23 桌面工具 软件资料 8
28 专用软件 软件资料 9

15 网络知识 网络知识 7
42 社区新闻 网络知识 2

16 法律法规 法律法规 8
24 刑法 法律法规 2
25 民法 法律法规 3
26 其他法律 法律法规 4
27 法律解释 法律法规 5


根据我以上发的资料,我要的结果是这样的,中间空一行是为了大家看起来清楚一些

--假設第一列的列名為ID,第三列的列名為classname

Select * From class A 
Order By (Select Min(ID) From class Where classname = A.classname), ID
這麼寫,效率更優

Select A.* From class A
Inner Join 
(Select classname, Min(ID) As ID From class Group By classname) B
On A.classname = B.classname
Order By B.ID, A.ID
1    社区报道    社区报道    1
2    社区动态    社区报道    2
3    社区逸事    社区报道    3
4    外警见闻    社区报道    4
5    经典案例    社区报道    5

6    百姓观点    百姓观点    2
43   111         百姓观点    2

7    社区文化    社区文化    3
8    百姓文学    社区文化    2
9    书法绘画    社区文化    3
10   摄影作品    社区文化    4
11   社区影视    社区文化    5

12   理论研究    理论研究    4
45   333         理论研究    2

13   装备器材    装备器材    5
44   222         装备器材    2

14   软件资料    软件资料    6
17   系统程序    软件资料    2
18   办公软件    软件资料    3
19   媒体工具    软件资料    4
20   EBOOK       软件资料    5
21   驱动程序    软件资料    6
22   网络工具    软件资料    7
23   桌面工具    软件资料    8
28   专用软件    软件资料    9

15   网络知识    网络知识    7
42   社区新闻    网络知识    2

16   法律法规    法律法规    8
24   刑法        法律法规    2
25   民法        法律法规    3
26   其他法律    法律法规    4
27   法律解释    法律法规    5
第一列:id
第二列:classname
第三列:bigclass
第四列:firstorder

上面写的都不对啊
?

我寫的那個不行?
哦,列名有出入,修改下


Select * From class A 
Order By (Select Min(ID) From class Where bigclass = A.bigclass), ID


Or


Select A.* From class A
Inner Join 
(Select bigclass, Min(ID) As ID From class Group By bigclass) B
On A.bigclass = B.bigclass
Order By B.ID, A.ID

别笑,问一个简单的问题,嘿嘿 加急!特急!奇怪 ADO的发布问题,请帮忙 偶是学计算机的,班上考试都好厉害的,可是他们有的重格装windows都不会!!!why??? ltmodem-kv_2.4.9_21-6.00b9-1.i6861 初学ASP,请大侠们多多帮助!! 如何进一位?如10.2 --->> 11 各位请帮帮小弟,请问在PB中有类似FOX中的宏代换吗?谢了! 模板文件和一般的excel表的区别在哪里? 哪个网站有网程的模拟习题???? 求教一个简单的问题:在资源管理器中复制,粘贴,剪切一个文件,分别发送什么消息????????? redhat7.2猫猫猫 excel中模板文件和一般的excel表有什么区别?--跟者有分 国内有什么irc服务器?还要在redhat7.1中如何设置代理以访问国外网站。(我在教育网) 3x 小妹请各位大哥讲讲怎么样才能在PB中动态创建表?小妹有礼了。 为什么收国外的信是乱码? 又有新问题啦~!关于SQL SERVER的备份与恢复。。。70分送上。。。 福建东网公司武汉办事处欢迎大家加盟! 如何在jsp中调用.jar包!!! 我是不是一个大菜鸟? 请问有谁知道ord的用法 请教!BandPrinted属性 问:在自已的网站上不依赖第三方如何统计网站访问次数? 谢谢! 在一个页面上,如何用一个按钮提交两个表单。 在win2000/xp,下怎样屏蔽Ctrl+Alt+Del,怎样隐藏进程,请斑竹帮帮忙!! win2000下的底层底层系统钩子:WH_KEYBOARD_LL的问题! 我想成立一个工作室,有意请留下联系方式! oracle8怎么样导出几个表的数据?(急) ================以最多的分求一个最简单的问题的答案====================== 过年了,没长进,无颜见江东父老。还有谁单独在北京过年的?进来报个名。