簡體   English   中英

REGEXP_SUBSTR 轉換后的輸出未轉換為整數

[英]REGEXP_SUBSTR converted output is not casting as integer

我嘗試使用如下所示的 REGEXP_SUBSTR Sql 函數從 20 個字符的字符串中提取所有數字。

select
REGEXP_SUBSTR(substring(mycolumn,1,20), '^[0-9]', 1)
|| REGEXP_SUBSTR(substring(mycolumn,1,20), '^[0-9]', 2)
|| REGEXP_SUBSTR(substring(mycolumn,1,20), '^[0-9]', 3)
...
...
|| REGEXP_SUBSTR(substring(mycolumn,1,20), '^[0-9]', 20)
from tbl;

但是,當嘗試將其轉換為 bigint/decimal 或任何數字數據類型時,它會因Invalid input syntax for type numericInvalid digit, Value '2', Pos 0, Type: Long而失敗。

我錯過了什么嗎? REGEXP_SUBSTR 連接的典型輸出是 105622,0044,022 等。查詢在 Redshift 數據倉庫上運行,並且 REGEXP_REPLACE/TRANSLATE 尚未出現在那里。

看起來只要字符串中沒有數字,那么上面的 regexp_substr 連接就會返回空字符串 (''),它不支持轉換為整數。 所以我使用了NULLIF (regex expression, '')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM