第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

T-SQL拆分字符串

T-SQL拆分字符串

T-SQL拆分字符串我有一個(gè)SQL Server 2008 R2列包含一個(gè)字符串,我需要用逗號(hào)分隔。我在StackOverflow上看到了很多答案,但它們都不適用于R2。我確保我對(duì)任何拆分函數(shù)示例都有選擇權(quán)限。任何幫助非常感謝。
查看完整描述

4 回答

?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

我之前使用過這個(gè)SQL可能對(duì)你有用: -

CREATE FUNCTION dbo.splitstring ( @stringToSplit VARCHAR(MAX) )RETURNS @returnList TABLE ([Name] [nvarchar] (500))ASBEGIN

 DECLARE @name NVARCHAR(255)
 DECLARE @pos INT WHILE CHARINDEX(',', @stringToSplit) > 0
 BEGIN
  SELECT @pos  = CHARINDEX(',', @stringToSplit)  
  SELECT @name = SUBSTRING(@stringToSplit, 1, @pos-1)

  INSERT INTO @returnList 
  SELECT @name  SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos+1, LEN(@stringToSplit)-@pos)
 END

 INSERT INTO @returnList SELECT @stringToSplit RETURNEND

并使用它: -

SELECT * FROM dbo.splitstring('91,12,65,78,56,789')


查看完整回答
反對(duì) 回復(fù) 2019-05-27
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

最簡單的方法是使用XML格式。


1.將字符串轉(zhuǎn)換為不帶表的行


QUERY


DECLARE @String varchar(100) = 'String1,String2,String3'

-- To change ',' to any other delimeter, just change ',' to your desired one

DECLARE @Delimiter CHAR = ','    


SELECT LTRIM(RTRIM(Split.a.value('.', 'VARCHAR(100)'))) 'Value' 

FROM  

(     

     SELECT CAST ('<M>' + REPLACE(@String, @Delimiter, '</M><M>') + '</M>' AS XML) AS Data            

) AS A 

CROSS APPLY Data.nodes ('/M') AS Split(a)

結(jié)果


 x---------x

 | Value   |

 x---------x

 | String1 |

 | String2 |

 | String3 |

 x---------x

2.從表中轉(zhuǎn)換為具有每個(gè)CSV行的ID的行


消息表


 x-----x--------------------------x

 | Id  |           Value          |

 x-----x--------------------------x

 |  1  |  String1,String2,String3 |

 |  2  |  String4,String5,String6 |     

 x-----x--------------------------x

QUERY


-- To change ',' to any other delimeter, just change ',' before '</M><M>' to your desired one

DECLARE @Delimiter CHAR = ','


SELECT ID,LTRIM(RTRIM(Split.a.value('.', 'VARCHAR(100)'))) 'Value' 

FROM  

(     

     SELECT ID,CAST ('<M>' + REPLACE(VALUE, @Delimiter, '</M><M>') + '</M>' AS XML) AS Data            

     FROM TABLENAME

) AS A 

CROSS APPLY Data.nodes ('/M') AS Split(a)

結(jié)果


 x-----x----------x

 | Id  |  Value   |

 x-----x----------x

 |  1  |  String1 |

 |  1  |  String2 |  

 |  1  |  String3 |

 |  2  |  String4 |  

 |  2  |  String5 |

 |  2  |  String6 |     

 x-----x----------x


查看完整回答
反對(duì) 回復(fù) 2019-05-27
  • 4 回答
  • 0 關(guān)注
  • 1219 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)