2016-04-11 18 views
0

Burada mümkünse sql (herhangi bir DBMS'den bağımsız) bazı sql sql'leri yazıyorum, bunun mümkün olup olmadığını ve başka hangi çözümleri önerirsiniz.sql sorgusundaki koşullu

select 
    sb.field 
from 
    case 1 
     subquery1 as sb 
    case 2 
     subquery2 as sb 

Bu mümkün mü? eğer işe yaramayacak bir çözüm var mı?

teşekkürler sana dinamik bir tablodan seçmek istiyor anladığım

+0

, sizin durum değeriniz (1, 2) ile karşılaştırıldığında, bunun geçerli olup olmadığını görmek için mi? Ya da her iki durumda da aynı anda geçerli olmalıdır? – trincot

+3

Yanıtları şu adreste bulabilirsiniz: http://stackoverflow.com/questions/646334/is-it-possible-to-use-a-case-statement-in-a-sql-from-clause –

cevap

0

. Tek yolu, önermediğim dinamik bir sql olur. Bunun yerine, bir vaka ifadesi hazırlayabilir ve oradaki her durum için sorgularınızı yazabilirsiniz. Tabii ki, bu sadece makul bir miktar seçeneğiniz varsa.

0

Bazı alt sorguları kapatmak için, buradaki ifadeleri kullanabilirsiniz. Çoğu RDBMS, her zaman yanlış olan cümlelerin bulunduğu sorguları optimize eder. Bu, yalnızca iki alt sorgunun aynı alanlara sahip olması durumunda çalışacaktır.

SELECT <fields> 
FROM (
    SELECT <sub1> FROM table1 WHERE <expression which is true if you want sub1> 
    UNION 
    SELECT <sub2> FROM table2 WHERE <expression which is true if you want sub2> 
) 
İlgili konular