[英]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.