2011-04-04 57 views
1

SELECT FIELD1 FROM表1 WHERE FIELD1> = 4006 AND FIELD1 <( SELECT FIELD1 FROM表 條件WHERE FIELD1> 4006 和Field2 =假 ORDER BY FIELD1 LIMIT 1 )如何忽略在where子句

我想第二個條件(AND field1 <)被忽略,如果內部選擇沒有返回記錄。

與此相關的topic

回答

2

喜歡的東西(未經測試!):

SELECT field1 FROM table1 
WHERE field1 >= 4006 
    AND (field1 < (
    SELECT field1 
    FROM table 
    WHERE field1 > 4006 
      AND field2 = false 
    ORDER BY field1 
    LIMIT 1 
    ) 
    OR 
    NOT EXISTS (
    SELECT field1 
    FROM table 
    WHERE field1 > 4006 
      AND field2 = false 
    ORDER BY field1 
    ) 
) 
+0

太好了,謝謝克里斯 – Omid 2011-04-04 15:47:27