我正在嘗試使用 SQL SUBSTRING 方法從列中提取值。列中的值采用以下格式:VI_{13446F4A-DAC2-44AD-BDAB-86E6F2546DE6}_20220122T090159. 我正在嘗試獲取由字符分隔的所有子字串_。我設法提取了第一部分,但我沒有找到其他使用的方法:
DECLARE @Str nchar(200);
SET @Str = 'VI_{13446F4A-DAC2-44AD-BDAB-86E6F2546DE6}_20220122T090159'
SELECT SUBSTRING(@Str, 1, CHARINDEX('_', @Str) -1) AS F1,
SUBSTRING(@Str, CHARINDEX('_', @Str) 1, LEN(@Str)) AS F2
上面的代碼給了我 F1 正確,但 F2 不正確:
F1 = VI
F2 = {13446F4A-DAC2-44AD-BDAB-86E6F2546DE6}_20220122T090159
我怎樣才能得到其他兩個部分?
謝謝!
uj5u.com熱心網友回復:
如果沒有 inline .,我想你可以使用PARSENAME
DECLARE @original VARCHAR(255) = 'VI_{13446F4A-DAC2-44AD-BDAB-86E6F2546DE6}_20220122T090159'
DECLARE @new VARCHAR(255) = REPLACE(@original,'_','.')
SELECT PARSENAME(@new,3) as F1,
PARSENAME(@new,2) as F2,
PARSENAME(@new,1) as F3
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/426015.html
