if (Request.QueryString["OrderNo"] == null)
        {
            sql = "select zz_Stock_inProduct.*,zz_Stock_Barcode.* from zz_Stock_inProduct inner join zz_Stock_Barcode on zz_Stock_inProduct.Barcode = zz_Stock_Barcode.Barcode";
        }
        else
        {
            sql = "select zz_Stock_inProduct.*,zz_Stock_Barcode.*,NewQTY*Price as nPrice from zz_Stock_inProduct inner join zz_Stock_Barcode on zz_Stock_inProduct.Barcode = zz_Stock_Barcode.Barcode where OrderNo='" + Request.QueryString["OrderNo"] + "' order by zz_Stock_inProduct.id asc";
        }
根据以上代码条件判断写一个存储过程。!

解决方案 »

  1.   

    表述不清楚,是想用存储实现IF还是分别实现SQL里面的查询
      

  2.   

    select 
      zz_Stock_inProduct.*,
      zz_Stock_Barcode.*,
      NewQTY*Price as nPrice 
    from 
      zz_Stock_inProduct 
    inner 
      join zz_Stock_Barcode 
    on 
      zz_Stock_inProduct.Barcode = zz_Stock_Barcode.Barcode 
    where 
      OrderNo=isnull(@OrderNo,OrderNo)
    order by 
      zz_Stock_inProduct.id asc
      

  3.   


    就是有参数的执行某一条SQL,没条件参数的执行另一条SQL语句!要求判断在存储过程里实现。
      

  4.   


    CREATE PROCEDURE p_test
    (
        @OrderNo    VARCHAR(1000)
    )
    AS 
    BEGIN
        IF @OrderNo IS NULL
        BEGIN
            SELECT zz_Stock_inProduct.*,zz_Stock_Barcode.* 
            FROM zz_Stock_inProduct 
            INNER JOIN zz_Stock_Barcode ON zz_Stock_inProduct.Barcode = zz_Stock_Barcode.Barcode
        END
        ELSE
        BEGIN
            SELECT zz_Stock_inProduct.*,zz_Stock_Barcode.*,NewQTY*Price AS nPrice 
            FROM zz_Stock_inProduct 
            INNER JOIN zz_Stock_Barcode ON zz_Stock_inProduct.Barcode = zz_Stock_Barcode.Barcode 
            WHERE OrderNo = @OrderNo
            ORDER BY zz_Stock_inProduct.id ASC
        END        
    END
    GO--执行:
    --EXEC p_test