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

OracleでTO_CHAR()を使用して10進数を16進数に変換する方法

    Oracle Databaseでは、TO_CHAR()を使用できます。 数値を16進数に変換する関数。これを行うには、Xを使用します フォーマット要素。

    デモンストレーションの例を次に示します。

    SELECT TO_CHAR(15, 'X')
    FROM DUAL;

    結果:

       TO_CHAR(15,'X') 
    __________________ 
     F                

    Fは15に相当する16進数であるため、返されるのはそれです。

    先行ゼロ

    この要素の前には0のみを付けることができます (先行ゼロを返します)またはFM (パディングを抑制します)。

    その前に0を付けると次のようになります :

    SELECT TO_CHAR(15, '0X')
    FROM DUAL;

    結果:

       TO_CHAR(15,'0X') 
    ___________________ 
     0F                

    先行ブランクの抑制

    どちらも指定しない場合0 FMでもありません Xを使用 、その場合、戻り値には常に先頭に1つの空白があります。

    FMを使用すると次のようになります パディングを抑制するためのフォーマット修飾子:

    SELECT TO_CHAR(15, 'fm0X')
    FROM DUAL;

    結果:

       TO_CHAR(15,'FM0X') 
    _____________________ 
    0F                    

    先頭のスペースが消えました。

    大文字と小文字

    大文字のXを渡す 結果は大文字の16進値になり、小文字のxを渡します。 結果は小文字の16進値になります:

    SELECT  
        TO_CHAR(15345, 'fm0XXXX'),
        TO_CHAR(15345, 'fm0xxxx')
    FROM DUAL;

    結果:

       TO_CHAR(15345,'FM0XXXX')    TO_CHAR(15345,'FM0XXXX') 
    ___________________________ ___________________________ 
    03BF1                       03bf1                      

    非整数

    数値が整数でない場合は、最も近い整数に丸められます:

    SELECT  
        TO_CHAR(12.49, 'fm0xxxx') AS "12.49",
        TO_CHAR(12.50, 'fm0xxxx') AS "12.50"
    FROM DUAL;

    結果:

       12.49    12.50 
    ________ ________ 
    0000c    0000d   

    1. 初期データを含むdockerpostgresは、コミットを超えて永続化されません

    2. パラメータとともに使用する場合にOR句の使用を最適化する方法(SQL Server 2008)

    3. PostgreSQLの日付から月を抽出する

    4. Oracle:'=ANY()' vs.'IN()'