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

SQLite SUBSTRING()の説明

    SQLiteでは、substring() substr()のエイリアスです 。

    文字列内の指定された開始位置に基づいて、文字列からサブ文字列を返します。 2つの引数が必要であり、3番目のオプションの引数が受け入れられます。

    substring() 命名は、2020年12月1日にリリースされたSQLite3.34.0で導入されました。substring()の理由 SQLServerとの互換性のために導入された構文。

    構文

    したがって、次のいずれかの方法で関数を呼び出すことができます。

    substr(X,Y,Z)
    substr(X,Y)
    substring(X,Y,Z)
    substring(X,Y)
    • X 返す部分文字列を含む完全な文字列です。
    • Y は、その文字列から返すサブ文字列の最初の文字の場所です。
    • Z 返される文字数です。省略した場合、後続のすべての文字が返されます(Yから開始) 。

    Xの場合 は文字列であり、文字インデックスは実際のUTF-8文字を参照します。 Xの場合 がBLOBの場合、インデックスはバイトを参照します。

    前述のように、substring() 構文はSQLite3.34.0からのみ利用できます。

    3つの引数を持つ例

    substring()の使用方法を示す基本的な例を次に示します。 3つの引数があります。

    SELECT substring('Dolemite', 3, 4);

    結果:

    lemi

    2つの引数を持つ例

    前の例の3番目の引数を省略すると、次の結果が得られます。

    SELECT substring('Dolemite', 3);

    結果:

    lemite

    否定的な出発点

    2番目の引数に負の値を指定できます。これを行うと、部分文字列の最初の文字は、左ではなく右から数えて見つけられます。

    SELECT substring('Dolemite', -3);

    結果:

    ite

    別の例を次に示します。今回は、部分文字列の長さを指定します。

    SELECT substring('Dolemite', -7, 4);

    結果:

    olem

    したがって、負の値はsubstring()を使用する場合と同じ効果があります MySQLで機能します。 MySQLにはsubstr()もあります substring()の同義語である関数 働き。

    ただし、これはSQLServerが負の値を処理する方法とは異なります。 substring()に負の値を渡す場合 SQL Serverでは、文字列が始まる前の架空のポイントからカウントを開始します。

    負の部分文字列の長さ

    前の例では、負の開始点を使用しました。この例では、負の長さを使用します。これは、3番目の引数に負の値を提供することを意味します。

    SELECT substring('Dolemite', -1, -4);

    結果:

    emit

    したがって、3番目の引数に負の値を指定すると、開始点の前の文字が返されます。

    これは、2番目の引数が正の値の場合にも当てはまります。

    SELECT substring('Dolemite', 6, -4);

    結果:

    olem

    データベースの例

    substring()を使用する例を次に示します。 Chinookサンプルデータベースに対するデータベースクエリで。

    SELECT 
        substring(Name, 1, 10),
        Name
    FROM Artist
    ORDER BY Name DESC
    LIMIT 10;

    結果:

    substring(Name, 1, 10)  Name                             
    ----------------------  ---------------------------------
    Zeca Pagod              Zeca Pagodinho                   
    Youssou N'              Youssou N'Dour                   
    Yo-Yo Ma                Yo-Yo Ma                         
    Yehudi Men              Yehudi Menuhin                   
    Xis                     Xis                              
    Wilhelm Ke              Wilhelm Kempff                   
    Whitesnake              Whitesnake                       
    Vinícius E              Vinícius E Qurteto Em Cy         
    Vinícius E              Vinícius E Odette Lara           
    Vinícius D              Vinícius De Moraes & Baden Powell

    この場合、Nameから最初の10文字を返しました 桁。 Nameの全内容も返しました 結果を比較するための列。


    1. 複数のパラメーター化された変数をC#のデータベースに追加する

    2. Oracleパッケージ内の依存関係を見つける方法は?

    3. T-SQLスタッフコマンド

    4. SQL Server 2016:ストアドプロシージャを作成する