簡體   English   中英

無法使用Oracle SQL,因為列名是保留字

[英]Can't get like to work in Oracle SQL because column name is a reserved word

我正在嘗試獲取查詢以搜索字符串,並且我很確定我無法使其正常工作的唯一原因是因為列的名稱是NAME,這也是一個保留字。查詢運行但它即使字符串在列中也不會拉出任何東西。 看起來有什么問題嗎?

SELECT TABLE."NAME"
FROM TABLE
WHERE TABLE."NAME" LIKE '%apple%'

它應該起作用,只是確保您正確使用了大寫/小寫字母。

create table tbl ("NAME" varchar(20));
insert into tbl values ('pppp apple pppp');
insert into tbl values ('pppp beer pppp');
insert into tbl values ('apple pppp pppp');

select *
from   tbl
where  tbl."NAME" like '%apple%'
\n |  NAME |\n |  :-------------- |\n |  pppp蘋果pppp |\n |  蘋果pppp pppp |\n

dbfiddle 在這里

首先, table 保留字。 讓我假設這不是真實的表名。

其次,將列名放在雙引號中會產生作用。 我建議您嘗試:

SELECT t.name
FROM <tablename> t
WHERE t.name LIKE '%apple%';

如果不確定數據的大小寫,請在比較之前通過使用大寫或小寫強制使用它,以便將蘋果與蘋果進行比較(嘿):

SELECT NAME
FROM TABLE
WHERE lower(NAME) LIKE '%apple%'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM