SQL Server 2008 R2——使用數字輔助表(master..spt_values)實現用計數欄位對記錄進行重複顯示

來源:互聯網
上載者:User

標籤:

原文: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)實現用計數欄位對記錄進行重複顯示

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.