[英]Concatenate and use in where clause oracle plsql
我必須連接兩個字段並在 where 子句中使用連接字段,但它給了我無效的標識符。 如何解決此查詢。
select i.FIRST_NAME || ' - ' || i.LAST_NAME as NAME, i.* from CONTACT i
where NAME = 'JOHN - HANKS'
這給了我
ORA-00904: "NAME": invalid identifier
00904. 00000 - "%s: invalid identifier"
您不能在同一級別使用列別名。 只需使用子查詢(或重復表達式):
select c.*
from (select i.FIRST_NAME || ' - ' || i.LAST_NAME as NAME, i.*
from CONTACT i
) c
where c.NAME = 'JOHN - HANKS';
WITH 子句也是一個很好的選擇,更好的可讀性。 另外,如果子查詢要被多次使用,那就更好了。
WITH data as(
select i.FIRST_NAME || ' - ' || i.LAST_NAME as NAME, i.* from CONTACT i)
select * from data where name = 'JOHN - HANKS';
選擇 i.FIRST_NAME || ' - ' || i.LAST_NAME as NAME, i.* from CONTACT i where i.first_name ||'~'||i.last_name = 'JHON~HANKS';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.