我在資料庫中有一個表,其分數值為 14.65 45 7458.34 34.69 4.7 34
我想將此小數值轉換為十六進制。
但是 to_hex 函式只轉換十進制值 (14) 而不是 (14.65)。
也嘗試使用 to_char - SELECT TO_CHAR(15.33, 'X') FROM DUAL; --->輸出:F
我不想設定上限或下限并列印十六進制數。我要 15.33 --->F.547AE147
uj5u.com熱心網友回復:
將值拆分為整數和小數部分并TO_CHAR分別使用它們:
WITH table_name (value) AS (
SELECT 15.33 FROM DUAL UNION ALL
SELECT -15.33 FROM DUAL
)
SELECT value,
CASE WHEN value < 0 THEN '-' END
|| TO_CHAR(TRUNC(ABS(value)), 'fmXXXXXXXXXX')
|| '.'
|| TO_CHAR(
ABS(MOD(value, 1))*TO_NUMBER('FFFFFFFF', 'XXXXXXXX'),
'fm0XXXXXXX'
) AS hex
FROM table_name;
哪個輸出:
價值 十六進制 15.33 F.547AE147 -15.33 -F.547AE147
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/457215.html
