[英]Postgres AVG function is not working with To_char function
[英]trim function not working on result of to_char
查詢
SELECT TRIM(BOTH '0' FROM '003') FROM DUAL;
按預期給出結果3
,但查詢:
select TRIM(BOTH '0' from TO_CHAR(3,'000')) from dual;
給003
我需要將結果作為第一個查詢('3'),但我還需要'TO_CHAR'(我正在使用它從 NUMBER 列創建虛擬列)。
我不知道為什么以及如何解決它。 另外,我不能使用 regex_replace 代替。
您想使用FM
格式 model 不包括前導空格。
SELECT TRIM(BOTH '0' from TO_CHAR(3,'FM000'))
FROM DUAL;
哪個輸出:
| TRIM(BOTH'0'FROMTO_CHAR(3,'FM000')) | |:---------------------------------- | | 3 |
如果你想要一個生成的列,那么:
CREATE TABLE table_name (
value NUMBER,
trimmed_value VARCHAR2(10)
GENERATED ALWAYS AS (TRIM(BOTH '0' FROM TO_CHAR(value, 'FM000')))
);
INSERT INTO table_name ( value )
SELECT 0 FROM DUAL UNION ALL
SELECT 3 FROM DUAL UNION ALL
SELECT 30 FROM DUAL UNION ALL
SELECT 100 FROM DUAL;
然后:
SELECT *
FROM table_name;
輸出:
價值 | TRIMMED_VALUE ----: |:------------ 0 | null 3 | 3 30 | 3 100 | 1
db<> 在這里擺弄
代替TRIM
,您可以使用以下語句實現結果 33:
select substr (00033,instr(000,-1))from dual
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.