はここで前のSQL Server 2016へのSQL ServerのバージョンのSUBSTRING
とCHARINDEX
を使用したバージョンですSTRING_SPLIT
が導入されました。次の作品の
次のいずれかの
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, 20)
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, DATALENGTH(@string) - CHARINDEX(' ', @string) +1)
編集は、私たちが表す数値を返しCHARINDEXを(使用しての領域の位置を見つける必要があるラオさんのコメント
ごとに説明を追加しますスペースの後ろで選択したい文字列が始まるので、開始位置がCHARINDEX( ''、@)になるようにSUBSTRINGの開始位置に1(+1)を加えなければなりません。文字列)+ 1
SUBSTRINGの3番目の引数は、選択する文字列の長さです。最初のケースでは、varchar(20)で指定した文字列が20文字を超えないため、20文字を使用すると仮定します。注意SUBSTRING文字列の最後を過ぎて文字を選択しようとしないので、残っている文字数より長い長さを指定することは安全です。
私の第二の例は、それ私たちの選択の前に、全文字列(DATALENGTH)の長さを引いた文字の数である(CHARINDEX + 1)
に基づいて選択するために、文字列の長さを取得しますが、あなたは常に2つの部分を持っていますか(1スペース)、または選択した文字が出現するたびに文字列を分割したいですか?複数のスペースはどうですか? – Pred