標籤:
原文:SQL Server 2008 R2——使用數字輔助表(master..spt_values)實現用計數欄位對記錄進行重複顯示
=================================著作權聲明=================================
著作權聲明:原創文章 謝絕轉載
請通過右側公告中的“聯絡郵箱([email protected])”聯絡我
勿用於學術性引用。
勿用於商業出版、商業印刷、商業引用以及其他商業用途。
本文不定期修正完善。
本文連結:http://www.cnblogs.com/wlsandwho/p/5075789.html
恥辱牆:http://www.cnblogs.com/wlsandwho/p/4206472.html
=======================================================================
沒啥說的,鄙視那些無視著作權隨意抓取博文的爬蟲小網站站長,聖誕了,祝你們見到上帝。
=======================================================================
=======================================================================
從來只見過有人要用distinct去重,可沒聽說過誰還要產生重複資料的。今兒咱算是開了眼了。
上代碼吧。
1 --by WLS 2 --20151224 3 --網路代碼有風險複製粘貼須謹慎 4 USE tempdb 5 GO 6 7 IF OBJECT_ID (N‘t_TestbyWLS‘, N‘U‘) IS NOT NULL 8 DROP TABLE t_TestbyWLS; 9 CREATE TABLE t_TestbyWLS(Id INTEGER PRIMARY KEY,Name NVARCHAR(15),Qty INTEGER)10 GO11 12 INSERT INTO t_TestbyWLS VALUES13 (1,‘thbytwo‘,3),14 (2,‘wlsandwho‘,2)15 GO16 17 SELECT * FROM t_TestbyWLS18 GO19 20 -------------------------------------------------------------------------------------------21 WITH TempQty22 AS23 (24 SELECT number AS Num FROM master..spt_values WHERE type=‘p‘25 )26 SELECT a.Id,a.Qty FROM t_TestbyWLS a LEFT JOIN TempQty b ON b.Num>0 AND b.Num<=a.Qty27 GO
分步思路
1 ------------------------------------------------------------------------------------------- 2 --step0 3 SELECT number AS Num FROM master..spt_values WHERE type=‘p‘ 4 GO 5 --step1 6 WITH TempQty 7 AS 8 ( 9 SELECT number AS Num FROM master..spt_values WHERE type=‘p‘10 )11 SELECT a.Id,a.Qty,b.Num FROM t_TestbyWLS a LEFT JOIN TempQty b ON 1=112 --step213 WITH TempQty14 AS15 (16 SELECT number AS Num FROM master..spt_values WHERE type=‘p‘17 )18 SELECT a.Id,a.Qty,b.Num FROM t_TestbyWLS a LEFT JOIN TempQty b ON 1=1 AND b.Num>0 AND b.Num<=a.Qty19 --step320 WITH TempQty21 AS22 (23 SELECT number AS Num FROM master..spt_values WHERE type=‘p‘24 )25 SELECT a.Id,a.Qty FROM t_TestbyWLS a LEFT JOIN TempQty b ON b.Num>0 AND b.Num<=a.Qty26 GO
執行結果
執行計畫
=======================================================================
本著從業務出發的原則,我問了下事主為何有這種浪(wéi)費(bèi)空(lì)間(shǐ)、低(bù)效(rén )率(dào )、違(pò)反(huài)數(rì)據(nèi)庫(wǎ)範(tiáo)式(yuē)的需求,
下面是問答。
看來是軟體架構設計的問題了,不予置評。
=======================================================================
(友情支援請掃描這個)
掃描上方二維碼捐贈
SQL Server 2008 R2——使用數字輔助表(master..spt_values)實現用計數欄位對記錄進行重複顯示