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

MariaDBでのRPAD()のしくみ

    MariaDBでは、RPAD() は、文字列の右側に特定の数の指定された文字を埋め込む組み込みの文字列関数です。

    たとえば、RPAD()を使用できます 文字列の右側をドットで埋めます。

    構文

    構文は次のようになります:

    RPAD(str, len [, padstr])

    str はパディングする文字列であり、len 文字列を埋め込む文字数です。これはパディング自体の量ではなく、パディングされた後に返される文字列の合計文字数であることに注意してください。

    padstr パディングに使用する文字を指定するオプションの引数です。

    基本的な例は次のとおりです。

    SELECT 
        RPAD('Fire', 8) AS "1",
        RPAD('Fire', 15) AS "2",
        'Fire' AS "3";

    結果:

    +----------+-----------------+------+
    | 1        | 2               | 3    |
    +----------+-----------------+------+
    | Fire     | Fire            | Fire |
    +----------+-----------------+------+

    スペース文字がデフォルトの文字です。したがって、3番目の引数を含めない場合は、スペースが使用されます。この場合、3番目の引数を指定しなかったため、スペースが使用されました。

    この例では、3つの列が返されます。 RPAD()の効果を簡単に確認できるようにするためにこれを行いました より明確に。パディングには、列の幅を指定されたパディングの長さまで押し出す効果があります。

    この場合、最初の2つの列は2つの異なるパディング長を使用し、3番目の列は元の(パディングされていない)文字列です。

    パディング文字を指定

    3番目の引数を使用する例を次に示します。これは、パディングに使用する文字を指定します:

    SELECT RPAD('Fire', 15, '.');

    結果:

    +-----------------------+
    | RPAD('Fire', 15, '.') |
    +-----------------------+
    | Fire...........       |
    +-----------------------+

    ドットを使用すると、パディングをより明確に確認できます。

    元の文字列よりも小さいパディング

    2番目の引数が元の文字列よりも小さい場合、パディングは追加されず、元の文字列は指定された文字数に短縮されます。

    SELECT RPAD('Enlightenment', 7);

    結果:

    +--------------------------+
    | RPAD('Enlightenment', 7) |
    +--------------------------+
    | Enlight                  |
    +--------------------------+

    データベースの例

    データベース列の値の右側をパディングする例を次に示します。

    SELECT 
        RPAD(PetName, 15, '.') AS "Padded Name",
        PetName AS "Original Name"
    FROM Pets;

    結果:

    +-----------------+---------------+
    | Padded Name     | Original Name |
    +-----------------+---------------+
    | Fluffy......... | Fluffy        |
    | Fetch.......... | Fetch         |
    | Scratch........ | Scratch       |
    | Wag............ | Wag           |
    | Tweet.......... | Tweet         |
    | Fluffy......... | Fluffy        |
    | Bark........... | Bark          |
    | Meow........... | Meow          |
    +-----------------+---------------+

    ヌル引数

    引数のいずれか(またはすべて)がnullの場合 、RPAD() 関数はnullを返します :

    SELECT 
        RPAD(null, 10, '.'),
        RPAD('Coffee', null, '.'),
        RPAD('Coffee', 10, null);

    結果:

    +---------------------+---------------------------+--------------------------+
    | RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('Coffee', 10, null) |
    +---------------------+---------------------------+--------------------------+
    | NULL                | NULL                      | NULL                     |
    +---------------------+---------------------------+--------------------------+

    Oracleモード

    でない場合 Oracleモードで実行している場合、結果が空の場合(つまり、長さがゼロの場合)、結果は空の文字列になります。

    ただし、Oracleモードで実行すると、結果はnullになります。 。

    ここではデフォルトモードになっています(つまり、 Oracleモードの場合):

    SELECT RPAD('', 0);

    結果:

    +-------------+
    | RPAD('', 0) |
    +-------------+
    |             |
    +-------------+

    それでは、Oracleモードに切り替えましょう:

    SET SQL_MODE=ORACLE;

    そして、コードを再度実行します:

    SELECT RPAD('', 0);

    結果:

    +-------------+
    | RPAD('', 0) |
    +-------------+
    | NULL        |
    +-------------+

    引数がありません

    RPAD()の呼び出し 少なくとも2つの引数がないと、エラーが発生します:

    SELECT RPAD('Coffee');

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'

    RPAD()を呼び出すときにも同じことが起こります 引数なし:

    SELECT RPAD();

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'

    1. MySQLのT-SQLのWITHTIESの代替

    2. QPSQLドライバーがロードされていませんQt

    3. Oracleの時間値にメリディエムインジケーター(AM / PM)を追加する方法

    4. 時系列データベースとは何ですか?