濮阳杆衣贸易有限公司

主頁 > 知識庫 > Sql Server數(shù)據(jù)把列根據(jù)指定內(nèi)容拆分數(shù)據(jù)的方法實例

Sql Server數(shù)據(jù)把列根據(jù)指定內(nèi)容拆分數(shù)據(jù)的方法實例

熱門標簽:智能語音外呼系統(tǒng)選哪家 京華物流公司地圖標注 奧威地圖標注多個地方 武漢長沙外呼系統(tǒng)方法和技巧 千呼電銷機器人價格 外呼系統(tǒng)電銷專用 怎樣在地圖上標注路線圖標 百度地圖標注不同路線 優(yōu)質(zhì)地圖標注

今天由于工作需要,需要把數(shù)據(jù)把列根據(jù)指定的內(nèi)容拆分數(shù)據(jù)

其中一條數(shù)據(jù)實例

 select id , XXXX FROM BIZ_PAPER where  id ='4af210ec675927fa016772bf7dd025b0'

 

拆分方法:

select t3.id ,t3.XXXX as XXXX from (
select A.id , B.XXXX from (
SELECT id, XXXX = CONVERT(xml,'root>v>' + REPLACE(XXXX , ',', '/v>v>') + '/v>/root>') FROM BIZ_PAPER) A
outer apply(
SELECT XXXX = N.v.value('.', 'varchar(100)') FROM A.XXXX .nodes('/root/v') N(v)) B) t3 where t3.id ='4af210ec675927fa016772bf7dd025b0'

結(jié)果

 

在自己研究這行代碼之后,做出如下講解,如果有錯誤的地方還請指教

SELECT id, XXXX = CONVERT(xml,'root>v>' + REPLACE(XXXX , ',', '/v>v>') + '/v>/root>') FROM BIZ_PAPER

這一行的重點在于CONVERT,XML是指類型,xml 數(shù)據(jù)類型實例拆分為關(guān)系數(shù)據(jù),則 nodes() 方法非常有用,至于XML類型的數(shù)據(jù),我后面進行補充

REPLACE 指按照 ' , ' 進行替換,并且按照指定的內(nèi)容進行拼接

最后的結(jié)果為

 

outer apply

這個就是表的關(guān)聯(lián),就像是left join ,但是沒有on 作為關(guān)聯(lián)條件,所以通過拆分之后多出來的數(shù)據(jù)就是通過這個進行關(guān)聯(lián)后產(chǎn)生的

 SELECT XXXX = N.v.value('.', 'varchar(100)') FROM A.XXXX .nodes('/root/v') N(v)

N.v.value('.','varchar(100)'),N是表,別名,v是列,value函數(shù)是讀取標簽之間的值,對于這個列子,讀取的為v>和/v>中間的值;這個可以去了解 xml類型的常用的三個方法 :value()、nodes()、exist()

value的第一個參數(shù)是一個字符串文字,從 XML 實例內(nèi)部檢索數(shù)據(jù)。 XQuery 必須最多返回一個值。 否則,將返回錯誤;

value的第二個參數(shù)是指將查詢結(jié)果轉(zhuǎn)化為何種類型的數(shù)據(jù)。

此處,'.'表示當前目錄,即v>目錄,另外'..'表示上級目錄,'/'表示根目錄,這個跟Linux是一樣的

總的來說,這個語句的重點在于xml類型的使用和outer apply的使用,其他的都很好理解。這個就是我自己理解后的講解,部分位置我自己也還沒有理解透

總結(jié)

到此這篇關(guān)于Sql Server數(shù)據(jù)把列根據(jù)指定內(nèi)容拆分數(shù)據(jù)的文章就介紹到這了,更多相關(guān)SqlServer數(shù)據(jù)列根據(jù)內(nèi)容拆分數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL按指定字符合并以及拆分實例教程
  • MySQL截取和拆分字符串函數(shù)用法示例
  • SQL Server實現(xiàn)將特定字符串拆分并進行插入操作的方法
  • MySQL 常見數(shù)據(jù)拆分辦法
  • sqlserver2008 拆分字符串
  • SQL 將一列拆分成多列的三種方法

標簽:威海 防疫戰(zhàn)設(shè) 七臺河 宿州 來賓 天水 益陽 銅仁

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Sql Server數(shù)據(jù)把列根據(jù)指定內(nèi)容拆分數(shù)據(jù)的方法實例》,本文關(guān)鍵詞  Sql,Server,數(shù)據(jù),把,列,根據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Sql Server數(shù)據(jù)把列根據(jù)指定內(nèi)容拆分數(shù)據(jù)的方法實例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Sql Server數(shù)據(jù)把列根據(jù)指定內(nèi)容拆分數(shù)據(jù)的方法實例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    偏关县| 禄劝| 乳山市| 仁怀市| 长岛县| 开化县| 延长县| 南溪县| 越西县| 东台市| 武穴市| 阜阳市| 米脂县| 武宣县| 繁峙县| 巴彦县| 临武县| 长阳| 上杭县| 定日县| 静乐县| 桐庐县| 屏山县| 榆中县| 裕民县| 北京市| 垣曲县| 商河县| 阿巴嘎旗| 新密市| 宜章县| 通许县| 万载县| 准格尔旗| 常山县| 海原县| 恩平市| 宜兰市| 武陟县| 开封县| 彭山县|