sql >> データベース >  >> NoSQL >> MongoDB

SQL LPAD()

    SQLでは、LPAD() 文字列の左側を指定された文字で埋める、一般的に使用される関数です。この関数は文字列と数値に使用できますが、DBMSによっては、数値をパディングする前に文字列として渡す必要がある場合があります。

    LPAD()を持つDBMS 関数には、MySQL、MariaDB、PostgreSQL、およびOracleが含まれます。

    しないDBMS LPAD()があります 関数にはSQLServerとSQLiteが含まれます(ただし、これらのDBMSで左パディングを適用する方法は他にもあります)。

    LPAD()の使用方法を示す例を次に示します。 SQLコード内:

    SELECT LPAD('Look Left', 20);

    結果:

    +-----------------------+
    | LPAD('Look Left', 20) |
    +-----------------------+
    |            Look Left  |
    +-----------------------+

    この例では、文字列の左側にスペース(デフォルトの埋め込み文字)が埋め込まれ、結果の文字列の長さは20文字になります(20を指定したため) 2番目の引数として)。

    Oracleも同じように機能しますが、FROM DUALを使用する必要があります このようなクエリを実行する場合(実際のテーブルをクエリせずに):

    SELECT LPAD('Look Left', 20) 
    FROM DUAL;

    結果:

        LPAD('LOOKLEFT',20) 
    _______________________ 
               Look Left   

    パディング文字を指定

    パディングは必ずしもスペースである必要はありません。オプションで、3番目の引数を追加して、パディングで使用する1つまたは複数の文字を指定できます。

    SELECT LPAD('7', 3, '0');

    結果:

    007

    この場合、数値にゼロを埋め込みました。実際、この例では数値を文字列として渡しました。

    一部のDBMS(MariaDBやMySQLなど)では、数値を数値として渡すことができます。また、数値を埋めるために次のように渡すことができます。

    SELECT LPAD(7, 3, 0);

    結果:

    007

    Oracleでもこれを行うことができます:

    SELECT LPAD(7, 3, 0) 
    FROM DUAL;

    結果:

    007

    しかし、PostgreSQLにはこれに関する問題があります:

    SELECT LPAD(7, 3, 0);

    結果:

    ERROR:  function lpad(integer, integer, integer) does not exist

    SQL Server

    SQLServerにはLPAD()がありません 関数ですが、FORMAT()があります 先行ゼロで数値を埋めることができる関数:

    SELECT FORMAT(7, '000');

    結果:

    007

    それが機能する方法は、数値に続いてフォーマット文字列を渡すことです。上記の例では、フォーマット文字列は000です。 。これは、結果が3桁で構成されるように、元の数値が埋め込まれるカスタム数値形式の文字列です。元の数値にまだ3桁が含まれていない場合は、ゼロが埋め込まれます。

    SQL Serverに文字列を残すには、次のようにします。

    SELECT RIGHT('.......' + 'Cat', 7);

    結果:

    ....Cat

    SQL Serverには他にもLPAD()に相当するものがいくつかあります。


    1. RuntimeError:-ERR不明なコマンドがRubyでredisgemを実行しています

    2. なぜ必要なのか、マングースを使用する利点は何ですか

    3. CosmosMongoDB統合を使用したAzureFunctionが保存されない

    4. Redisキーの命名規則と有効な文字