sql >> データベース >  >> RDS >> Sqlserver

アイテムxにアクセスできるように文字列を分割するにはどうすればよいですか?

    SQL Serverに分割関数が組み込まれているとは思わないので、UDFを除いて、私が知っている他の唯一の答えは、PARSENAME関数をハイジャックすることです。

    SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2) 
    

    PARSENAMEは文字列を受け取り、ピリオド文字で分割します。 2番目の引数として数値を取り、その数値は、文字列のどのセグメントを返すかを指定します(後ろから前に向かって動作します)。

    SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3)  --return Hello
    

    明らかな問題は、文字列にすでにピリオドが含まれている場合です。私はまだUDFを使用することが最善の方法だと思います...他に何か提案はありますか?



    1. IS NOT NULL変数が設定されている場合、レコードのテストはTRUEを返しません

    2. SQL Serverのdatetime2とsmalldatetime:違いは何ですか?

    3. MySQLのテーブル名では大文字と小文字が区別されますか?

    4. N番目に高い給与