ここでは、常に正確に 4 つの部分があると想定しています。
その場合、 /
を置き換えることができます .
で 組み込みの素敵な ParseNameを使用します> 関数。あなたの例の唯一の問題は、最後からカウントされることです。そのため、必要な部分に注意する必要があります:
DECLARE @test VARCHAR(max);
SET @test = 'Peter/Parker/Spiderman/Marvel';
SET @test = Replace(@test, '/', '.');
SELECT Parsename(@test, 4),--returns Peter
Parsename(@test, 3),--returns Parker
Parsename(@test, 2),--returns Spiderman
Parsename(@test, 1) --returns Marvel
可変数のパーツがある場合は、これを行うための文字列分割関数を見つける必要があります。組み込みの適切な関数はありません。SO を検索すると、多くのオプションを見つけることができます:https://stackoverflow.com/search?q=[sql+server]+string+split
警告 - PARSENAME
で数値を使用しようとした場合 1 ~ 4 以外の場合、結果は常に NULL になります。