請幫我使用Oracle數據庫SQL Oracle錯誤 - 作業任務
PROMPT解決以下問題的SQL: 列表按升序PK序列中的倉庫表中的所有列。 •其中地址RD或ST結束只列出行
SELECT *
FROM warehouse
WHERE address ='% rd'
OR WHERE address ='% st',
ORDER BY whid ASC;
錯誤消息:
OR WHERE地址= '%ST',*
錯誤在第4行:ORA- 00936:缺少表達
請幫我使用Oracle數據庫SQL Oracle錯誤 - 作業任務
PROMPT解決以下問題的SQL: 列表按升序PK序列中的倉庫表中的所有列。 •其中地址RD或ST結束只列出行
SELECT *
FROM warehouse
WHERE address ='% rd'
OR WHERE address ='% st',
ORDER BY whid ASC;
錯誤消息:
OR WHERE地址= '%ST',*
錯誤在第4行:ORA- 00936:缺少表達
你不需要第二個WHERE
,也應該刪除逗號。另外,您可能希望在地址前有LIKE
,並且您可能不想擁有空格。
我想你的意思是這樣的:
SELECT *
FROM warehouse
WHERE address LIKE '%rd'
OR address LIKE '%st'
ORDER BY whid ASC;
或者,你可能有更聰明:
-- You don't say this explicitly, but I think it a good idea to make sure that
-- you are searching for rd and st in the right tense. That is why I have 'lower'
SELECT *
FROM warehouse
WHERE lower(substr(address,-2,2)) in ('rd', 'st')
ORDER BY whid ASC;
有沒有辦法將UPPER或LOWER屬性添加到第一個示例? – 2013-04-24 00:27:02
@DannyMahoney你需要有上限或下限都圍繞'address'的 – cwallenpoole 2013-04-24 01:42:52
SELECT * FROM 倉庫 WHERE UPPER(地址= '%RD') 或上(地址= '%ST') ORDER BY whid ASC; 創建錯誤 WHERE(UPPER(地址= '%RD')在3線 * 錯誤: ORA-00907:錯過右括號 – 2013-04-24 01:47:54
擺脫第二WHERE
的,使用LIKE
代替=
和嘗試[R揮動%
角色後的空間。
SELECT *
FROM warehouse
WHERE address LIKE '%rd'
OR address LIKE '%st'
ORDER BY whid ASC;
這就是我本來和仍然沒有工作。 [CODE] SELECT * FROM 倉庫 WHERE地址= '%RD' OR地址= '%ST' ORDER BY whid ASC; [/ CODE] 顯示OK 0行,但是當我做到以下幾點: SELECT * FROM WAREHOUE 它的工作原理,因此數據有 – 2013-04-24 00:12:55
你得到一個錯誤? – 2013-04-24 00:13:30
沒有錯誤,但數據庫中多次出現'%st'和'%rd'語法 – 2013-04-24 00:19:43
擺脫第二WHERE
聲明,並改變你的等價語句LIKE
。
SELECT *
FROM warehouse
WHERE address LIKE '% rd'
OR address LIKE '% st'
ORDER BY whid ASC;
如果你有等效聲明那裏,你將只匹配正好等於% rd
或% st
字符串。
SELECT * 「FROM倉庫 WHERE地址LIKE '%RD' OR address like'%st' ORDER BY whid ASC;' 顯示OK 0 rows – 2013-04-24 00:16:48
使用like關鍵字:
SELECT * FROM warehouse WHERE address LIKE '%RD' OR address LIKE '%ST' ORDER BY whid ASC;
OK。0 rows selected。 – 2013-04-24 00:18:26
額外的逗號後第二次在那裏,只需要一個'where' – 2013-04-24 00:18:47