下面的Select語句返回附加的列。在這一點上一切都很好,但我仍然需要添加一些檢查。我需要:ORACLE SQL:使用SUBSTR構建CASE語句
- 如果文本列包含一個時期的標誌,意味着我們有一個 OBJECT_OWNER/OBJECT_NAME然後告訴車主
- 如果列文本不包含句號(。)(。)符號,意味着這是一個規則,那麼只有在OBJECT_NAME中沒有該部分(只有RULE名稱:ex:「R_FIRST」變成「R_FIRST」)而OBJECT_OWNER不應該包含任何內容(只是空白而不是像現在這樣顯示(NULL) );
目前查詢:
SELECT
SUBSTR(SUBSTR(TRIM(X.TEXT), 1, INSTR(TRIM(X.TEXT), '.')-1), 8) AS OBJECT_OWNER,
SUBSTR(TRIM(X.TEXT), INSTR(TRIM(X.TEXT), '.')+1) AS OBJECT_NAME,
TRIM(X.TEXT) TEXT
FROM
TABLE_X X
WHERE
SUBSTR(TRIM(X.TEXT), 1, 6) in ('<FROM>','<INTO>','<RULE>');
電流輸出:
OBJECT_OWNER OBJECT_NAME TEXT
SCHEMA100 T_PERSON <INTO> SCHEMA100.T_PERSON
SCHEMA110 T_CLIENT <FROM> SCHEMA110.T_CLIENT
(NULL) <RULE> R_FIRST <RULE> R_FIRST
所需的輸出:
OBJECT_OWNER OBJECT_NAME TEXT
SCHEMA100 T_PERSON <INTO> SCHEMA100.T_PERSON
SCHEMA110 T_CLIENT <FROM> SCHEMA110.T_CLIENT
R_FIRST <RULE> R_FIRST
你可以添加問題你想要的輸出? – Seyran
這也有助於展示輸入數據的一個例子。 – SandPiper