[英]Oracle SQL Alias usage
我定義了一個別名:
concat(lower(DBO.tname.fname),lower(dbo.tname.lname)) as TNAME,
后來想在正則表達式中使用TNAME:
REGEXP_LIKE (TNAME,'smith')
失敗並顯示以下錯誤:
ORA-00904: "TNAME": invalid indentifier
但是,如果我用原始表達式替換TNAME,一切都很好:
REGEXP_LIKE (concat(lower(DBO.tname.fname),lower(dbo.tname.lname)),'smith')
如果不使用別名,我還能如何替換復雜的表達式?
非常感謝您的幫助。
操作順序為FROM
, WHERE,
SELECT
, ORDER BY
將別名放入SELECT中。 如果在WHERE子句中比較REGEXP_LIKE (TNAME,'smith')
,它將無法識別它。
SELECT TNAME
FROM (
SELECT concat(lower(DBO.tname.fname),lower(dbo.tname.lname)) as TNAME, some_other_cols
FROM some_table
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.