master..spt_values

--PARSENAME可以用截取字符串用,但是只能是四个以内,也就是三个分隔符

DECLARE @T TABLE
(
 COL VARCHAR(80)
)

INSERT INTO @T
SELECT '123_12_124' UNION ALL   
SELECT '1234_125_1243'



SELECT COL,
       COL1 = PARSENAME(REPLACE(COL,'_','.'),3),   ----替换一下 '.' 因为 parsename 只认 '.' 
       COL2 = PARSENAME(REPLACE(COL,'_','.'),2),
       COL3 = PARSENAME(REPLACE(COL,'_','.'),1)
 FROM @T

COL        COL1       COL2       COL3       
---------- ---------- ---------- ---------- 
123_12_124 123        12         124
1234_125_1 1234       125        1243


select Parsename('aaa.master.dbo.spt_values',1)
, Parsename('aaa.master.dbo.spt_values',2) 
, Parsename('aaa.master.dbo.spt_values',3) 
, Parsename('aaa.master.dbo.spt_values',4)

(无列名)    (无列名)    (无列名)    (无列名)
spt_values    dbo            master            aaa

select * from master.dbo.spt_values ---数据又是存在这个表里面倒序

select * from master..spt_values --这个表还存在连续数据
如下面的链接:http://topic.csdn.net/u/20120508/14/c2c06411-741e-4f60-9026-6312de0188a9.html?77079

--简单的用spt_values表也查询1-200的数据.


select  distinct number from master..spt_values
where  type='p' and number >= 1 and number =< 200
原文地址:https://www.cnblogs.com/zerocc/p/2501756.html