选出彩票中奖用户

某彩票网站的一个数据表T_DATA有7个数字字段(F1,F2~F7),
用于存储彩民购买的彩票上的7个号码(顺序按数字从小到大分别放在F1~F7中): 
T_DATA
FNAME F1 F2 F3 F4 F5 F6 F7
张三 1 3 5 12 21 22 30
李四 4 6 12 14 24 28 29
… … … … … … … …
摇奖摇出了一组号码也是7个数字:
3,12,14,17,19,22,30
只要有4个号码符合的用户就会获奖,请使用一条符合SQL92规范的语句把中奖的用户查询出来。
-------------------------------------------------------------------------------------------------
declare @str varchar(1000)
declare @T_DATA table(FNAME nvarchar(5), F1 int, F2 int, 
F3 int, F4 int,F5 int, F6 int, F7 int )
create  table #temp(F1 int)
set @str='3,12,14,17,19,22,30'
set @str='select  '''+replace(@str,',',''''+' union all select ''')+'''' 
insert #temp exec (@str)
insert @T_DATA select N'张三', 1, 3, 5, 12, 21, 22, 30 
insert @T_DATA select N'李四' ,4, 6 ,12, 14 ,24, 28, 29 
select fname from 
(select FNAME,F1 from @T_DATA
union all
select FNAME,F2 from @T_DATA
union all
select FNAME,F3 from @T_DATA
union all
select FNAME,F4 from @T_DATA
union all
select FNAME,F5 from @T_DATA
union all
select FNAME,F6 from @T_DATA
union all
select FNAME,F7 from @T_DATA) a ,#temp b
where a.f1=b.f1 group by fname having count(1)>=4
drop table #temp
/*
fname
-----
张三
(所影响的行数为 1 行)
*/
发布了58 篇原创文章 · 获赞 0 · 访问量 12万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章