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
の全内容も返しました 結果を比較するための列。