ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » MS SQL Server » SQL 语句,请教

标题: SQL 语句,请教
离线 nalnait
初级会员



精华贴数 0
个人空间 0
技术积分 130 (13535)
社区积分 0 (610052)
注册日期 2005-9-13
论坛徽章:0
      
      

发表于 2008-7-29 13:43 
SQL 语句,请教

---有如下表:
A              B                 C
a             3                 null
a             3                 null
b             2                 null
a             3                 null
c              1                 null
b             2                  null
d             3                  null
d             3                  null
d             3                  null
……
如何得到一下结果:
A              B                 C
a             3                 1
a             3                 1
b             2                 2
a             3                 1
c              1                 3
b             2                  2
d             3                  4
d             3                  4
d             3                  4
……
感觉over()可以实现,不知道怎么弄,呵呵,请各位帮忙,谢谢!


只看该作者    顶部
离线 larrywall
初级会员



精华贴数 0
个人空间 0
技术积分 80 (19587)
社区积分 0 (537138)
注册日期 2005-7-29
论坛徽章:0
      
      

发表于 2008-7-29 17:40 
回复 #1 nalnait 的帖子

create table _tb_temp(A char(1), B int, C  char(1),)


INSERT _tb_temp(A, B) VALUES('a', 3);
INSERT _tb_temp(A, B) VALUES('a', 3);
INSERT _tb_temp(A, B) VALUES('b', 2);
INSERT _tb_temp(A, B) VALUES('a', 3);
INSERT _tb_temp(A, B) VALUES('c', 1);
INSERT _tb_temp(A, B) VALUES('b', 2);
INSERT _tb_temp(A, B) VALUES('d', 3);
INSERT _tb_temp(A, B) VALUES('d', 3);
INSERT _tb_temp(A, B) VALUES('d', 3);


SELECT  *
FROM _tb_temp

SELECT  A, B, DENSE_RANK  () OVER (ORDER BY  A,B) AS C
FROM _tb_temp
ORDER BY C


只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5596 (236)
社区积分 44488 (17)
注册日期 2007-9-10
论坛徽章:20
祖母绿萤石祖母绿紫水晶紫水晶红宝石
海蓝宝石紫水晶蓝锆石月度论坛发贴之星金色在线徽章 

发表于 2008-7-29 17:43 
2000里面没有这个函数吧


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 larrywall
初级会员



精华贴数 0
个人空间 0
技术积分 80 (19587)
社区积分 0 (537138)
注册日期 2005-7-29
论坛徽章:0
      
      

发表于 2008-7-29 17:49 
回复 #3 jvkojvko 的帖子

2005才有的


只看该作者    顶部
离线 lzl840625



精华贴数 0
个人空间 0
技术积分 4 (156031)
社区积分 0 (1809154)
注册日期 2008-6-28
论坛徽章:0
      
      

发表于 2008-7-29 20:53 
declare get_rec cursor
as
select A from table_name

open get_rec
declare @get_A char(1)
fetch get_rec into @get_A
while (@@FETCH_STATUS<>-1)
begin
update table_name  set A=
case @get_A
when 'A' then '1'
when 'B' then '2'
when 'C' then '3'
when 'D' then '4'
end
fetch get_rec into @get_A
end

deallocate get_A


只看该作者    顶部
离线 lzl840625



精华贴数 0
个人空间 0
技术积分 4 (156031)
社区积分 0 (1809154)
注册日期 2008-6-28
论坛徽章:0
      
      

发表于 2008-7-29 21:04 
不好意思,太疏忽了,以上代码有两个错误
应该是这样的:
declare get_rec cursor
for
select A from table_name

open get_rec
declare @get_A char(1)
fetch get_rec into @get_A
while (@@FETCH_STATUS<>-1)
begin
update table_name  set A=
case @get_A
when 'A' then '1'
when 'B' then '2'
when 'C' then '3'
when 'D' then '4'
end
fetch next from get_rec into @get_A
end

deallocate get_A


只看该作者    顶部
离线 sqysl
孤独剑客



来自 山东
精华贴数 0
个人空间 0
技术积分 1258 (1379)
社区积分 31 (6182)
注册日期 2006-12-20
论坛徽章:0
      
      

发表于 2008-7-30 09:53 
SELECT A, B,   
CASE C
          WHEN 'a' THEN '1'      
          WHEN 'b' THEN '2'      
          WHEN 'c' THEN '3'      
          WHEN 'd' THEN '4'      
END AS C
FROM tab_name


__________________
曾经沧海难为水,除却巫山不是云。
天若有情天亦老,人间正道是沧桑。
只看该作者    顶部
离线 apcbzxy


来自 湖南祁东
精华贴数 0
个人空间 100
技术积分 108 (15675)
社区积分 0 (1820887)
注册日期 2008-7-16
论坛徽章:0
      
      

发表于 2008-7-30 10:35 
楼主的那张表A字段难道就只包含(a,b,c,d)吗


__________________
枯藤老树昏鸦,小桥流水人家,古道西风瘦马,夕阳西下,断肠人在天涯
只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5596 (236)
社区积分 44488 (17)
注册日期 2007-9-10
论坛徽章:20
祖母绿萤石祖母绿紫水晶紫水晶红宝石
海蓝宝石紫水晶蓝锆石月度论坛发贴之星金色在线徽章 

发表于 2008-7-30 11:13 


QUOTE:
原帖由 apcbzxy 于 2008-7-30 10:35 发表
楼主的那张表A字段难道就只包含(a,b,c,d)吗

应该不会


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 sqysl
孤独剑客



来自 山东
精华贴数 0
个人空间 0
技术积分 1258 (1379)
社区积分 31 (6182)
注册日期 2006-12-20
论坛徽章:0
      
      

发表于 2008-7-30 12:25 
嗯,倒是没看到别的,没写出的东西,怎末猜啊?


__________________
曾经沧海难为水,除却巫山不是云。
天若有情天亦老,人间正道是沧桑。
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问