我在Postgresql中有一個測試表。它有一個字段value_exist,它是一個字符串,但其中包含字母數字值和數據中的一些特殊字符。我想忽略其中的字符[/ alpha /?/ $/encoding /。],並檢查記錄是否只有數字。如果只有它的唯一數字,那麼我們只需要其他字母數字我們需要null。請參考下面的例子:從數字記錄中提取數字並將null傳遞給Postgresql中的字母數字
SELECT CASE WHEN value_exist ~ '^([$?\\*+-][0-9]|[0-9][$?\\*+-]|[0-9][0-9])$'
THEN REGEXP_REPLACE(value_exist, '[$?\\*+-]', '', 'g')
ELSE NULL END value_new
FROM test_table
只需要準確NUMERICS即從0-9號的記錄,其餘全部(特殊字符/字母)作爲空過去了。 – user1538020
請說明問題。什麼是[/ alpha /?/ $/encoding /。]?整數或浮點數?有或沒有標誌?在正確理解中,結果只能是數字或'NULL'? –
alpha - 字母,$ - 特殊字符,編碼可以是表中的任何字符。我嘗試了下面,它適用於字母數字︰SELECT(case'kk9'〜'([AZ AZ])'then null else 77 end)K.但是我想檢查「$ 99 $」 - 這應該給我null,但它沒有給我null。所以,對於$而言它無法處理它。 – user1538020