選出彩票中獎用戶

某彩票網站的一個數據表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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章