比如说有3个传进来的参数A,B,C 
SELECT 
      X,Y,Z 
FROM 
      T1 
WHERE 
      X=A 
AND 
      Y=B 
AND 
      Z=C 如果A不存在,那么X=A这条不执行 请各位大大帮忙!

解决方案 »

  1.   

    在传值进来的时候,先判断A,B,C的值是否为空!然后在组SQL语句!
      

  2.   

    但是也有多个参数同时不存在的情况,这样岂不是要写7次
    我用的VB.NET
      

  3.   

    LS的几位意思是在应用程序端(VB.NET)写IF .. ELSE .. 判断语句,然后拼成一个SQL传到ORACLE执行。
      

  4.   

    也就是SQL文写到一半能穿插IF语句吗?
      

  5.   

    1.恐怕不能,2.不用写7次,三次就够了
    Dim sql As String
    Dim A As String
    Dim B As String
    Dim C As Stringsql = "SELECT X,Y,Z FROM T1 WHERE 1 = 1"If Len(A) > 0 Then
    sql &= " AND X = " + A;
    End IfIf Len(B) > 0 Then
    sql &= " AND Y = " + B;
    End IfIf Len(C) > 0 Then
    sql &= " AND Z = " + C;
    End If
      

  6.   

    我用的是sql.append传的,请问该怎样写?
    不管怎样先谢谢楼上的各位了~
    我再去研究一下
      

  7.   

    一样的,前面那个dim sql改下名字,比如dim str,拼好后在末尾加上 sql.append(str);