求一条简单的sql语句或者存储过程

勤快小朱猪 2009-08-17 11:45:39
求一条sql语句或者存储过程

如下建立表
create table tb
(
blogid int,
blogclass varchar(30)
)
insert into tb values(1,'人生');
insert into tb values(2,'学习');
insert into tb values(3,'工作');
insert into tb values(4,'感情');
insert into tb values(5,'朋友');
insert into tb values(6,'娱乐');


我想以blogid为参数传入,比如传入 blogid=3 吧
就是把 满足条件的结果提前,其他的按找升序排列!
不知道我说明白了没有

返回结果为
3 工作
1 人生
2 学习
4 感情
5 朋友
6 娱乐


不知道这样能不能实现??
多谢大家!如果可以的话,还可以在加分数

我这样写不对:查出来的部队
select * from tb where blogid=3
union
select * from tb where blogid<>3
order by blogid desc








...全文
98 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
勤快小朱猪 2009-08-18
  • 打赏
  • 举报
回复
这是我想要的结果!csdn就是牛人多啊!!我在qq论坛上面讨论了一个多小时,才找到答案,
我在百度知道里面就是没答案,不过上面的牛人都做了很好的解释,都是我想要的结果,只要我稍微修改一下就可以看了,但是我不可能在加分数了,因为已经有答案了只能按照先后顺序了!
多谢大侠的相助,看样还是csdn好啊!以前感觉网速慢不想上csdn,但是csdn解决问题就是快

我最想要的结果的形式:

create proc aa
@blogid int
as
select * from
(
select *,
case
when blogid=@blogid
then 0
else 1
end
as rankkey from tb
) a
order by a.rankkey,a.blogid
go
chunwudu 2009-08-18
  • 打赏
  • 举报
回复
好贴,顶一下。
xxmsuper 2009-08-18
  • 打赏
  • 举报
回复
借用1楼的

IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
create table tb
(
blogid int,
blogclass varchar(30)
)
insert into tb values(1,'人生');
insert into tb values(2,'学习');
insert into tb values(3,'工作');
insert into tb values(4,'感情');
insert into tb values(5,'朋友');
insert into tb values(6,'娱乐');
go
declare @blogid int
set @blogid=3
select *
from tb
order by case when blogid =@blogid then 0 else blogid end

blogid blogclass
----------- ------------------------------
3 工作
1 人生
2 学习
4 感情
5 朋友
6 娱乐

(6 行受影响)

feixianxxx 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fredrickhu 的回复:]
不要鸟小麦 哈哈
[/Quote]

--小F-- 2009-08-18
  • 打赏
  • 举报
回复
不要鸟小麦 哈哈
--小F-- 2009-08-18
  • 打赏
  • 举报
回复
---楼主看 case when 1 then 2 也可以
IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
create table tb
(
blogid int,
blogclass varchar(30)
)
insert into tb values(1,'人生');
insert into tb values(2,'学习');
insert into tb values(3,'工作');
insert into tb values(4,'感情');
insert into tb values(5,'朋友');
insert into tb values(6,'娱乐');
go
declare @blogid int
set @blogid=3
select *
from tb
order by case when blogid =@blogid then 2 else 3 end ,blogid


declare @blogid int
set @blogid=3
select *
from tb
order by case when blogid =@blogid then 1 else 2 end ,blogid

/*blogid blogclass
----------- ------------------------------
3 工作
1 人生
2 学习
4 感情
5 朋友
6 娱乐

(所影响的行数为 6 行)
*/
勤快小朱猪 2009-08-18
  • 打赏
  • 举报
回复
是的呀
gaodaweimeng 2009-08-18
  • 打赏
  • 举报
回复
百度一下
chduguxue 2009-08-18
  • 打赏
  • 举报
回复
昨天在qq群里的人就是你啊?
--小F-- 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 feixianxxx 的回复:]
你想加分 绝对没问题
[/Quote]

小样 得瑟
feixianxxx 2009-08-17
  • 打赏
  • 举报
回复

你想加分 绝对没问题
feixianxxx 2009-08-17
  • 打赏
  • 举报
回复
-- =========================================
-- -----------t_mac 小编-------------------
--------------------希望有天成为大虾----
-- =========================================

IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
create table tb
(
blogid int,
blogclass varchar(30)
)
insert into tb values(1,'人生');
insert into tb values(2,'学习');
insert into tb values(3,'工作');
insert into tb values(4,'感情');
insert into tb values(5,'朋友');
insert into tb values(6,'娱乐');
go
declare @blogid int
set @blogid=3
select *
from tb
order by case when blogid =@blogid then 0 else 1 end ,blogid

blogid blogclass
----------- ------------------------------
3 工作
1 人生
2 学习
4 感情
5 朋友
6 娱乐

(6 行受影响)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧