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

SQLServerに先頭と末尾のゼロを追加する

    一部のDBMSにはLPAD()があります およびRPAD() 先頭と末尾のゼロで数値を埋めるために使用できる関数。

    SQLServerにはそのような機能はありません。ただし、それでも先頭/末尾のゼロで数値を埋めることができます。

    非整数

    まず、非整数を見てみましょう:

    SELECT 
        FORMAT(7, '000.00') AS "1",
        FORMAT(17, '000.00') AS "2",
        FORMAT(73.5, '000.00') AS "3";

    結果:

    +--------+--------+--------+
    | 1      | 2      | 3      |
    |--------+--------+--------|
    | 007.00 | 017.00 | 073.50 |
    +--------+--------+--------+

    ここでは、FORMAT()を使用します 数値をフォーマットする関数。最初の引数は数値で、2番目の引数はフォーマット文字列です。この関数は、結果をフォーマットされた文字列として出力します。

    上記の例では、フォーマット文字列はカスタム数値フォーマット指定子で構成されており、元の数値に数字がない場所にゼロが追加された元の数値になります。フォーマット文字列には、必要な数のゼロを使用できます。

    SELECT 
        FORMAT(7, '00000.0000') AS "1",
        FORMAT(17, '00000.0000') AS "2",
        FORMAT(73.5, '00000.0000') AS "3";

    結果:

    +------------+------------+------------+
    | 1          | 2          | 3          |
    |------------+------------+------------|
    | 00007.0000 | 00017.0000 | 00073.5000 |
    +------------+------------+------------+

    整数

    元の数値が整数の場合は、もう少し作業を行う必要があります。

    SELECT 
        REPLACE(FORMAT(7, '00000.0000', 'en-US'), '.', '') AS "1",
        REPLACE(FORMAT(17, '00000.0000', 'en-US'), '.', '') AS "2",
        REPLACE(FORMAT(73.5, '00000.0000', 'en-US'), '.', '') AS "3";

    結果:

    +-----------+-----------+-----------+
    | 1         | 2         | 3         |
    |-----------+-----------+-----------|
    | 000070000 | 000170000 | 000735000 |
    +-----------+-----------+-----------+

    ここでは、REPLACE()を使用しました 数値がフォーマットされた後に小数点を削除する関数。

    en-USを明示的に使用しました 小数点記号がピリオド/ピリオドであり、コンマなどの別の文字ではないことを確認するための(オプションの)3番目の引数として。一部のロケールでは、小数点記号としてコンマを使用します。関数内からロケールを明示的に指定しない場合は、現在のセッションのロケールが使用されます。関数内からロケールを明示的に指定すると、現在のセッションのロケールが使用されないため、置換操作に干渉することはありません。

    Azure SQL Edge

    Azure SQL Edgeは、SQL Serverデータベースエンジンの限定された実装に基づいて構築されているため、SQLServerで使用できるほとんどのT-SQL関数をサポートしています。ただし、執筆時点では、SQLEdgeはT-SQLFORMAT()をサポートしていません。 機能。

    別の方法(SQL Serverでも機能します)については、AzureSQLEdgeで先頭と末尾のゼロを追加する方法を参照してください。


    1. Oracleが存在しない場合は挿入

    2. MariaDBで特定の文字のASCIIコードを返す2つの方法

    3. PostgreSQLをインストールできません:WindowsXPでMicrosoftVC++ランタイムインストーラーを実行するとエラーが発生しました

    4. IDENT_CURRENT()を使用して、SQLServerのID列の現在のID値を返します