表(表是空的)
Categories
列
商品id/CatId
简称/CatShortName
排序/rank
上级分类/ParentCatId 数据0 表示顶级分类要求建一个存储过程
查询产品分类表;
获取前N条记录;
按Rank值从低到高排序;
取分类的短名称;
该分类必须是顶级分类;变量跟 top一有关系 我就不会了 想不出怎么写了
Categories
列
商品id/CatId
简称/CatShortName
排序/rank
上级分类/ParentCatId 数据0 表示顶级分类要求建一个存储过程
查询产品分类表;
获取前N条记录;
按Rank值从低到高排序;
取分类的短名称;
该分类必须是顶级分类;变量跟 top一有关系 我就不会了 想不出怎么写了
解决方案 »
- 问下各位大虾,谁知道pdf格式的电子版的sql基础类的书籍啊?
- 高分求修改一个sql语句,要考虑执行效率
- 专业分方向,怎么选
- 关于SQL_SERVER2000性能的问题????
- 这个语句应该怎么写?
- 企业管理器一不小心被我删了,该怎么办啊?
- 如何利用VB编程获取当前局域网中可用的sql server服务器名称???
- 请教数据库高手一个难题
- sql server 中如何实现更改视图的值就能更改表的值?
- 我想学数据库编程,但我不知如何开始好,谁可以告诉我啊?
- 问下各位大大 SQL server 2008RTM版本怎么才能升级到R2版本
- 对表进行insert,update时如何进行防出错处理,比如表锁死之类
如果有多表,表之间如何关联?
发帖注意事项
http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
create proc sp_getCategories(@a int)
as
begin
exec(N'select top ' + @a + N' CatShortName from Categories where ParentCatId = 0 order by rank')
end
go
(
CatId INT,
CatShortName NVARCHAR(100),
[rank] INT,
ParentCatId INT
)
INSERT Categories
SELECT 1, N'商品1', 1, 0 UNION ALL
SELECT 2, N'商品2', 2, 4 UNION ALL
SELECT 3, N'商品3', 3, 0 UNION ALL
SELECT 4, N'商品4', 4, 3 UNION ALL
SELECT 5, N'商品5', 5, 1--#1.不太清楚你最终要的结果,感觉应该是和递归查询有关
;WITH cte_test AS
(
SELECT * FROM Categories
UNION ALL
SELECT a.* FROM Categories a, cte_test b WHERE a.CatId = b.ParentCatId
)
SELECT * FROM cte_test --自己修改一下这个语句达到你要的结果吧--#2.或许不用CTE,呵呵
SELECT a.Catid, a.CatShortName FROM
(SELECT DISTINCT Catid, CatShortName FROM Categories WHERE ParentCatId = 0) a
CROSS APPLY
(SELECT * FROM Categories WHERE Catid = a.Catid) b
ORDER BY b.[rank]可参考:http://topic.csdn.net/u/20110125/09/ba3cd9f7-4680-43c2-b228-c3184e405f7d.html
方法1:
declare @top int,
@sql varchar(2000)
set @top=10
set @sql='select top ' + convert(varchar,@top) +
' CatShortName from Categories where ParentCatId=0 order by rank'
exec (@sql)
方法2:
declare @top int
set @top=10
exec ('select top ' + @top + ' CatShortName from Categories where ParentCatId=0 order by rank')
方法3:
declare @top int
set @top=10
set rowcount @top
select CatShortName from Categories where ParentCatId=0 order by rank
set rowcount 0