對於樣品目的允許創建具有以下模式的表,並填寫一些樣品在ORACLE澆鑄數coulmn條件值應用,其中來自一個內部查詢結果
CREATE TABLE games(ID INT ,Name VARCHAR(20));
INSERT INTO games(ID,Name) VALUES (2008,'Beijing');
INSERT INTO games(ID,Name) VALUES (2012,'London');
INSERT INTO games(ID,Name) VALUES (2012,12);
INSERT INTO games(ID,Name) VALUES (2012,654);
輸出:
ID NAME
2008 Beijing
2012 London
2012 12
2012 654
在上表中,我們同時在名稱列中包含數字和字符串數據,可以編寫一個查詢,使用REGX僅過濾數字行
SELECT TO_NUMBER(Name)as Trimmed FROM games where REGEXP_LIKE(Name, '(?<=\s|^)\d+(?=\s|$)', '')
輸出:
TRIMMED
12
654
現在,這裏的問題是,如果寫從以上結果得到的值大於12的where子句,它拋出無效號碼。
Select * from (SELECT TO_NUMBER(Name)as Trimmed FROM games where REGEXP_LIKE(Name, '(?<=\s|^)\d+(?=\s|$)', '')) T1 where T1.Trimmed >12 ;
我發現這是怎樣的Oracle查詢計劃的作品,但是否有其他辦法可以做到這一點
這是標記爲MySQL和甲骨文 - 這是因爲它們是兩個不同的RDBMS? – MT0
語法提示Oracle請刪除mysql的標籤。 – Kacper