SQL Server を使用して、項目 x にアクセスできるように文字列を分割するにはどうすればよいですか?
文字列「Hello John Smith」を取得します。文字列をスペースで分割し、「John」を返すインデックス 1 の項目にアクセスするにはどうすればよいでしょうか。
ベストアンサー1
SQL Server には組み込みの分割関数がないと思うので、UDF 以外で私が知っている唯一の答えは、PARSENAME 関数をハイジャックすることです。
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2)
PARSENAME は文字列を受け取り、ピリオド文字で分割します。2 番目の引数として数値を受け取り、その数値は文字列のどのセグメントを返すかを指定します (後ろから前に向かって処理します)。
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3) --return Hello
明らかな問題は、文字列にすでにピリオドが含まれている場合です。UDF を使用するのが最善の方法だと私はまだ思っています...他に何か提案はありますか?