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

最初と最後の文字が母音(a、e、i、o、u)である出力

    すべての都市名がすべて小文字であるとすると、次のようになります。

    select city
    from   station
    where  substr(city,  1, 1) in ('a', 'e', 'i', 'o', 'u')
      and  substr(city, -1, 1) in ('a', 'e', 'i', 'o', 'u')
    

    substr(city、1、1) cityの部分文字列を取ります 位置1から始まり、長さ1(つまり、最初の文字だけ)。 substr(city、-1、1) は非常に似ていますが、位置が異なるだけです: -1 終わりからの最初の文字を意味します 文字列の-これにより、都市名の最後の文字が表示されます。

    cityの場合 WHERE には、大文字と小文字の両方が含まれる場合があります 句はlower(city)を使用します cityの代わりに 。

    編集 :人気のリクエストにより、正規表現で同じことができる方法は次のとおりです。ただし、ここで正規表現アプローチを使用しても意味がありません。標準の文字列関数(SUBSTRなど)は、正規表現に基づくものよりもはるかに高速であることがほぼ確実です。

    ....
    where regexp_like(city, '^(a|e|i|o|u).*(a|e|i|o|u)$', 'i')
    

    (a | e | i | o | u) それらの文字の1つだけを意味します。 ^ 文字列の先頭にアンカーを意味し、同様に $ 文字列の最後に。厳密に言えば、これには都市名が少なくとも2文字の長さである必要があります。 1文字の都市名が可能な場合、これは簡単に変更できます。 (SUBSTRアプローチは変更を必要としません。)

    最後の引数、'i' 、正規表現の一致する大文字と小文字を区別しません(必要な場合に備えて)。




    1. MySQL。年の範囲を選択

    2. PostgresNOSQLjsonデータのjson配列の合計を取得します

    3. PostgreSQLを使用してクライアントを強制的に切断します

    4. ブール値にBIT(1)をスキャフォールディングしないMysqlを使用したEFコア