Welcome to itblog

Every Day In Every Way I Am Getting Better And Better~

随机取值问题.

--表
DECLARE @T TABLE(ID INT IDENTITY(1,1), GROUP_I INT, VALUE INT, C INT,D INT)
INSERT INTO @T SELECT 1,1.1,NULL,NULL
UNION ALL SELECT 1,1.2,NULL,NULL
UNION ALL SELECT 1,1.3,NULL,NULL
UNION ALL SELECT 1,1.4,NULL,NULL
UNION ALL SELECT 2,1.5,NULL,NULL
UNION ALL SELECT 2,1.6,NULL,NULL
UNION ALL SELECT 2,1.7,NULL,NULL
UNION ALL SELECT 2,1.8,NULL,NULL
UNION ALL SELECT 2,1.9,NULL,NULL
--要求:
1:根据GROUP_I 分组,然后根据C 的最大值,提取该记录.
2:如果分组后C 的最大值有相同的记录,则随机提取一条.
--求相关SQL

Select * from @t as a
where not exists(
Select 1 from @t where GROUP_I=a.GROUP_I and IsNULL(C,0)>IsNULL(a.C,0) 
 ) and ID=(
Select top 1 ID from @t where GROUP_I=a.GROUP_I
 and IsNULL(C,0)=IsNULL(a.C,0) order by NewID()
)

阅读更多
文章标签: null insert table c sql
个人分类: SQL Sever
想对作者说点什么? 我来说一句

Python列表中随机取值

2013年01月25日 7KB 下载

AS3随机获取不重复的数

2013年07月21日 660B 下载

unity 随机数random 工具

2014年08月07日 130KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭