從外部傳進來六個參數,我要根據參數的情況來組裝sql語句!;;
類似于:
sql="select * from tablename where 1=1";
if(@para1 not is null)
 sql=sql+" and field1=@para1";
if(@para2 not is null)
 sql=sql+"and field2=@para2";
...
...高手指教怎么寫?
或者有沒有更好的辦法,來進行處理這樣的多參數問題?

解决方案 »

  1.   

    declare @sql varchar(1000)set @sql='select * from tablename where 1=1'
    if @para1 is not null
       set @sql=@sql+' and field1='+@para1--如果field1是字符型要 field1='''+@para1+''''
    .
    .
    .
      

  2.   

    就这样写就行呀,判断完了用exec执行就行了
      

  3.   

    sql="select * from tablename where 1=1 and field1=isnull(@para1,field1) and field2=isnull(@para2,field2)"
      

  4.   

    declare @sql varchar(1000)
    set @sql=''
    set @sql='select * from tablename where 1=1'
    if(@para1 is not null)
    begin
     set @sql=@sql+' and field1=' + @para1 
     /*@para1字符*/
     set @sql=@sql+' and field1=''' + @para1 +''''
    end 
    .....
      

  5.   

    wgzaaa() 很巧妙 ~.. 学习
      

  6.   

    有一个参数是datatime类型的,它要与数据库中某datetime类型的数据做比较
    where field>@dateTimePara请问,这个>@dateTimePara 在sql语句中,该如何表达:??
      

  7.   

    你根据传入的参数判断,最后组成一条完整的sql语句,用exec()执行就ok
      

  8.   

    有一个参数是datatime类型的,它要与数据库中某datetime类型的数据做比较
    where field>@dateTimePara请问,这个>@dateTimePara 在sql语句中,该如何表达:??
      

  9.   

    DATETIME在sql中就是一个字符串