2012-10-08 34 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

请不要太多,看看我的更新帖子,看看有什么问题...谢谢 –