2012-10-08 62 views
0

我正在使用MySQL和Visual Studio 2010 C#語言。在MySQL中具有多個SELECT的IF語句

我需要進行查詢。

SELECT a field, if this field is null or equals to 0 

再拍SELECT如果是從null0不同<>。 再拍一張SELECT

我也試着按照上面寫出標題時出現的建議,但沒有。

類似:

SELECT cart.cod_dependent (if cart.cod_dependent <> 0, Select ass.matricula, ass.nome, ass.situacao_social, ass.categoria, ELSE IF cart.cod_dependent = null Make another select) 

每一個選擇將是在不同的表,但都在同一個數據庫。

------ UPDATE 2012年10月8日09:59 -------- 現在,我想你說的話拉杜Bompa,但它說,在「致命錯誤encoutering執行命令「= \」。

MySqlCommand cmd = new MySqlCommand(); 
    string sql = @"SELECT @cod_dep = cart.cod_dependente FROM carteiras as cart 
    IF @cod_dep IS NULL 
    BEGIN 
    SELECT ass.matricula, ass.nome, ass.situacao_social, ass.categoria FROM associados AS ass INNER JOIN categorias AS cat ON cat.codigo = ass.categoria, 
    INNER JOIN situacoes_social AS ss ON ass.situacao_social = ss.codigo 
    END 
    ELSE 
    BEGIN 
    SELECT dep.nome, dep.matricula, dep.situacao_social, ss.descricao FROM dependentes INNER JOIN situacao_social as ss dep.situacao_social = ss.codigo 
    END 
    WHERE cart.numero = @carteira"; 
    cmd.CommandText = sql; 
    cmd.CommandType = CommandType.Text; 
    string dependente = ""; 
    cmd.Parameters.Add(new MySqlParameter("@carteira", MySqlDbType.Int32)).Value = carteira; 
    DataSet ds = _dal.Consultar(cmd); 

回答

0

也許這樣的事情可以工作:

SELECT @SomeValue = cart.cod_dependent FROM cart 
[email protected] is a variable, declared for this purpose 
IF @SomeValue IS NULL 
BEGIN 
    SELECT ass.matricula, ass.nome, ass.situacao_social, ass.categoria FROM table2 
END 
ELSE 
BEGIN 
    SELECT field FROM table3 
END 

您也可以嘗試使用stored procedure

+0

感謝您回答我Radu Bompa,但告訴我,這個@SomeValue只是一個用來比較的'東西',就像我們用來執行MySqlcommand.Parameter.Add(新的MySq [...])的查詢一樣。 ; ?或者我必須將其與某個值進行比較?我會嘗試沒有一定的價值,再次感謝。 –

+0

在SELECT語句中,您不必比較SomeValue,通過使用IS NULL在IF語句中進行比較。 –

+0

請不要太多,看看我的更新帖子,看看有什麼問題...謝謝 –