常常見到這個表,人家用得天花亂墜的。 自己select一看卻莫名其妙的。 花點時間學(xué)下吧。 如上, 這個表主要用來保存一些枚舉, 據(jù)說是從sybase繼承過來,許多函數(shù)和存儲過程可以看到它的身影。也可以叫系統(tǒng)常量表吧。 里面的東西比較多, 但最常用的是: --0
常常見到這個表,人家用得天花亂墜的?!∽约簊elect一看卻莫名其妙的?!』c時間學(xué)下吧。
如上, 這個表主要用來保存一些枚舉值, 據(jù)說是從sybase繼承過來,許多函數(shù)和存儲過程可以看到它的身影。也可以叫系統(tǒng)常量表吧。
里面的東西比較多, 但最常用的是:
--0~2047 共2048個數(shù)字 SELECT number FROM MASTER..spt_values WHERE TYPE = 'p'
1. 給定一個值, 希望得到某個日間范圍的日期數(shù)據(jù)。
比如:已知今天是: 2015-01-30, 那后面連續(xù)30天的日期則為:
SELECT CONVERT(CHAR(10), DATEADD(DAY, number, GETDATE()), 120) AS [日期] FROM MASTER..spt_values WHERE TYPE='P' AND number>0
--將一個數(shù)值以 1 來均分成多個等份,不足的顯示小數(shù) ;WITH cte(past) AS( SELECT 2.2 ) SELECT number, ( CASE WHEN past >= number THEN 1.0 --當(dāng)原小數(shù)值>當(dāng)前行值顯示 1.0 ELSE past -FLOOR(past) --否則顯示為小數(shù)值 END ) AS result FROM cte, MASTER..spt_values WHERE 1=1 AND CEILING(past) >= number --原小數(shù)值向上取大 >= number AND TYPE = 'P' AND number > 0 /* number result ----------- --------------------------------------- 1 1.0 2 1.0 3 0.2 */
不過也有局限, 畢竟它連續(xù)的只有 0~2047個數(shù)字
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com