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

MariaDBでのLPAD()のしくみ

    MariaDBでは、LPAD() は、文字列の左側に特定の文字数を埋め込む組み込みの文字列関数です。

    たとえば、LPAD()を使用できます 文字列の左側をスペースで埋めます。または、先行ゼロで数値を埋めることもできます。

    構文

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

    LPAD(str, len [, padstr])

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

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

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

    SELECT LPAD('Lion', 8);

    結果:

    +-----------------+
    | LPAD('Lion', 8) |
    +-----------------+
    |     Lion        |
    +-----------------+

    この場合、(パディング文字の)3番目の引数を指定しなかったため、スペースが使用されました。スペース文字がデフォルトの文字です。

    パディング文字を指定

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

    SELECT LPAD('Lion', 8, '.');

    結果:

    +----------------------+
    | LPAD('Lion', 8, '.') |
    +----------------------+
    | ....Lion             |
    +----------------------+

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

    パディング番号

    数値にゼロを埋め込む例は次のとおりです。

    SELECT LPAD(7, 3, 0);

    結果:

    +---------------+
    | LPAD(7, 3, 0) |
    +---------------+
    | 007           |
    +---------------+

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

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

    SELECT LPAD('Lion', 2);

    結果:

    +-----------------+
    | LPAD('Lion', 2) |
    +-----------------+
    | Li              |
    +-----------------+

    データベースの例

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

    SELECT 
        LPAD(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          |
    +-----------------+---------------+

    価格列を埋める別の例を次に示します。

    SELECT 
        ProductId, 
        ProductPrice, 
        LPAD(ProductPrice, 8, 0) 
    FROM Products;

    結果:

    +-----------+--------------+--------------------------+
    | ProductId | ProductPrice | LPAD(ProductPrice, 8, 0) |
    +-----------+--------------+--------------------------+
    |         1 |        25.99 | 00025.99                 |
    |         2 |        25.99 | 00025.99                 |
    |         3 |        14.75 | 00014.75                 |
    |         4 |        11.99 | 00011.99                 |
    |         5 |        33.49 | 00033.49                 |
    |         6 |       245.00 | 00245.00                 |
    |         7 |        55.99 | 00055.99                 |
    |         8 |         9.99 | 00009.99                 |
    +-----------+--------------+--------------------------+

    ヌル引数

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

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

    結果:

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

    Oracleモード

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

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

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

    SELECT LPAD('', 0);

    結果:

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

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

    SET SQL_MODE=ORACLE;

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

    SELECT LPAD('', 0);

    結果:

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

    引数がありません

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

    SELECT LPAD('Coffee');

    結果:

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

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

    SELECT LPAD();

    結果:

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

    1. SQLのみを使用してUPDATE前の列の値を返す

    2. sqlまたはphpPgAdminを使用してPostgreSQLデータベースのデータベースエンコーディングを変更するにはどうすればよいですか?

    3. MacOSXへのMySQLPythonのインストール

    4. ローリング期間の累計を作成する方法