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

スペースの後の部分文字列

    これは SUBSTRING を使用したバージョンです および CHARINDEX STRING_SPLIT の場合、SQL Server 2016 より前のバージョンの SQL SERVER の場合 が導入されました。

    次のいずれかが機能します:

    SELECT  SUBSTRING(@string, CHARINDEX(' ', @string) +1, 20)
    
    SELECT  SUBSTRING(@string, CHARINDEX(' ', @string) +1, DATALENGTH(@string) - CHARINDEX(' ', @string) +1 )
    

    CHARINDEX (文字列 (スペース) の開始位置を表す数値を返す) を使用してスペースの位置を見つける必要があります。ただし、選択する文字列はスペースの後に始まるため、1 (+1) を開始位置が CHARINDEX(' ', @string) + 1 になるように、SUBSTRING の開始位置。

    SUBSTRING の 3 番目の引数は、選択する文字列の長さです。最初のケースでは、varchar(20) として指定した文字列が 20 文字を超えてはならないことを想定しているため、20 を使用します。文字列の末尾を超える文字を選択するため、残りの文字数よりも長い長さを指定しても安全です。

    2 番目の例では、文字列全体の長さ (DATALENGTH) から選択前の文字数 (CHARINDEX + 1) を引いた長さに基づいて、選択する文字列の長さを取得します。



    1. MySql:複数の左結合が間違った出力を与える

    2. SSIS。あるテーブルのデータを別のテーブルにコピーする方法は?

    3. SQLでMAX(列値)、DISTINCT byMULTIPLE列の行を選択するにはどうすればよいですか?

    4. PDOマルチ挿入ステートメント