日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號(hào) > 充電吧
[導(dǎo)讀]今天在做數(shù)據(jù)分析報(bào)表的時(shí)候遇到一個(gè)這樣的問題。表結(jié)構(gòu)如下。部門編碼、部門名稱、部門人員ID(中間用逗號(hào)分割)我想通過和人員表鏈接,查詢出一個(gè)新的數(shù)據(jù)集,查詢出的結(jié)果集格式如下:人員信息(ID或者姓名)

今天在做數(shù)據(jù)分析報(bào)表的時(shí)候遇到一個(gè)這樣的問題。

表結(jié)構(gòu)如下。
部門編碼、部門名稱、部門人員ID(中間用逗號(hào)分割)


我想通過和人員表鏈接,查詢出一個(gè)新的數(shù)據(jù)集,查詢出的結(jié)果集格式如下:
人員信息(ID或者姓名)、部門編碼、部門名稱

?

以前都是通過程序遍歷拆分表字段組成新的集合字段,然后在結(jié)合SQL語句查詢出結(jié)果集,但是這個(gè)報(bào)表要求只能通過SQL語句實(shí)現(xiàn),以前記得可以通過寫字段分割函數(shù)再結(jié)合游標(biāo)實(shí)現(xiàn)。然而今天在網(wǎng)上無意間找到一個(gè)新的方法。用“master..spt_values”來實(shí)現(xiàn),具體實(shí)現(xiàn)方法見下面實(shí)例1感覺這個(gè)東西太好用了。把網(wǎng)上的實(shí)例都整理了一下,希望各路大神批評(píng)指教,也希望大家繼續(xù)把這方面的應(yīng)用貼上.

?

select?number?from?master..spt_values?with(nolock)?where?type='P'
/**解釋:master..spt_values表的字段值為P的對(duì)應(yīng)number字段值是從0-2047*/?
??
??
--1.將字符串轉(zhuǎn)換為列顯示?
??
if?object_id('tb')?is?not?null?drop?table?tb?
go?
create?table?tb([編號(hào)]?varchar(3),[產(chǎn)品]?varchar(2),[數(shù)量]?int,[單價(jià)]?int,[金額]?int,[序列號(hào)]?varchar(8))?
insert?into?tb([編號(hào)],[產(chǎn)品],[數(shù)量],[單價(jià)],[金額],[序列號(hào)])?
select?'001','AA',3,5,15,'12,13,14'?union?all
select?'002','BB',8,9,13,'22,23,24'
go?
select?[編號(hào)],[產(chǎn)品],[數(shù)量],[單價(jià)],[金額]?
,substring([序列號(hào)],b.number,charindex(',',[序列號(hào)]+',',b.number)-b.number)?as?[序列號(hào)]?
from?tb?a?with(nolock),master..spt_values?b?with(nolock)?
where?b.number>=1?and?b.number=1?and?number=1?and?number1?
/**?
value?
-----?
朋?
友?
的?
*/?
---------?
??
??
--4.提取兩個(gè)日期之間的所有月份?
if?object_id('tb')?is?not?null?drop?table?tb?
go?
create?table?tb(id?int?identity(1,1),startDate?varchar(10),endDate?varchar(10))?
insert?into?tb(startDate,endDate)?select?'2013-01-01','2013-09-25'
go?
declare?@startDate?varchar(10)?
declare?@endDate?varchar(10)?
select?@startDate=startDate,@endDate=endDate?from?tb?with(nolock)?
select?convert(varchar(7),dateadd(mm,number,@startDate),120)?as?[月份]?
from?master..spt_values?with(nolock)?
where?type='P'?and?number>=0?
and?dateadd(mm,number,@startDate)=1?
--and?number<=datediff(dd,@date,dateadd(mm,1,@date))?--對(duì)于mssql而言該語句不試用于2013-08-31的情況,這時(shí)由于9月沒有31號(hào),固計(jì)算出來的天數(shù)是30天?
and?number=left(@time,2)?and?b.number=1?and?number<=len(s)?
and?substring('|'+s,number,1)='|'
)select?left(ss,charindex(',',ss)-1)as?s1,substring(ss,charindex(',',ss)+1,len(ss))as?s2?from?cte?
drop?table?tb?
/**?
s1?????????????s2?
-----------?------------?
車位地址1??????車位狀況1?
車位地址2??????車位狀況2?
車位地址n??????車位狀況n?
*/


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉