如何只提取此列的字母而不考慮數字后的字符?此外,還有沒有數字的情況。在這種情況下,是否可以使用 CASE 和 WHEN 創建條件,僅在有數字的情況下應用提取條件?
輸入:
medication_title
GLYXAMBI 25 MG E 5 MG
GLIFAGE XR 750 MG
AD TIL
SIMETICON GOTAS
輸出:
medication_title | medication_commercialname
GLYXAMBI 25 MG E 5 MG GLYXAMBI
GLIFAGE XR 750 MG GLIFAGE XR
AD TIL AD TIL
SIMETICON GOTAS SIMETICON GOTAS
謝謝!
uj5u.com熱心網友回復:
REGEXP_REPLACE()尋找什么\s*\d.*(從 0 空白字符中獲取任何字串一個數字和 0 更多字符):
WITH input(medication_title) AS (
VALUES ('GLYXAMBI 25 MG E 5 MG')
, ('GLIFAGE XR 750 MG')
, ('AD TIL')
, ('SIMETICON GOTAS')
)
SELECT REGEXP_REPLACE(medication_title, '\s*\d.*','', 'g') FROM input;
將回傳:
GLYXAMBI
GLIFAGE XR
AD TIL
SIMETICON GOTAS
查看在線小提琴
uj5u.com熱心網友回復:
SELECT trim(substring(medication_title from '[^\d]*')) FROM tablename;
輸出 :
GLYXAMBI
GLIFAGE XR
AD TIL
SIMETICON GOTAS
uj5u.com熱心網友回復:
“具有兩個引數的子字串函式,子字串(來自模式的字串),提供與 POSIX 正則運算式模式匹配的子字串的提取。” (見:檔案)
查詢:
SELECT rtrim(substring(medication_title from '[A-Z ]*')) FROM tablename:
應該在任何數字之前回傳字符。
正則運算式 '[AZ ]*' 將匹配從 'A' 到 'Z' 的所有(大寫)字母和一個空格,任意次數(因為*)。
該函式rtrim()將洗掉末尾的空格。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/519429.html
