簡體   English   中英

Oracle DB SQL中簡單案例表達式中比較表達式的語法

[英]Syntax for comparison expression in Simple case expression in Oracle DB SQL

我正在嘗試為包含CASE語句的Oracle SQL select語句創建解析器

http://docs.oracle.com/cd/B19306_01/server.102/b14200/img/case_expression.gif

oracle參考列出了可以在http://docs.oracle.com/cd/B19306_01/server.102/b14200/img/simple_case_expression.gif中表示簡單案例的表達式

但是我在參考文獻中到處都找不到比較表達式,有人知道它在哪里以及它看起來如何嗎?

我相信這與此處定義的condition相同:

 http://docs.oracle.com/cd/E11882_01/server.112/e26088/conditions001.htm#SQLRF52101 

這意味着可能有多種情況,需要本手冊第7章的所有內容進行解釋。 而且它們中的大多數依次可以包含任意表達式(第6章的全部內容,以及函數調用的第5章),甚至子查詢(第9章的全部內容)。 對於eaxmple來說,這是一個“簡單案例陳述”:

 SELECT CASE WHEN (SELECT /* anything that can go in a select statement might be here */) > 0 THEN 'Y' ELSE 'N' END FROM DUAL 

並且在嵌套查詢中,您可以擁有各種難以解析的東西。 基本上,如果您想以Oracle解析CASE表達式的方式來解析CASE表達式,那么您就會遇到麻煩。 無法避免解析其余Oracle SQL的方法。

如果將自己限制為標准SQL(並且可能禁止子查詢),則您更有機會完成項目。

好吧,第一個答案與事實恰恰相反。 comparison_exprexpr將被比較的expr是,之后來到CASE

暫無
暫無

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

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