本文主要是介绍选出彩票中奖用户,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
某彩票网站的一个数据表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 行)
*/
这篇关于选出彩票中奖用户的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!