isnull(字段,0)-------- Transact-SQL 参考  
ISNULL
使用指定的替换值替换 NULL。语法
ISNULL ( check_expression , replacement_value ) 参数
check_expression将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。replacement_value在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 返回类型
返回与 check_expression 相同的类型。注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。示例
A. 将 ISNULL 与 AVG 一起使用
下面的示例查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。USE pubs
GO
SELECT AVG(ISNULL(price, $10.00))
FROM titles
GO下面是结果集:-------------------------- 
14.24                      (1 row(s) affected)B. 使用 ISNULL
下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。USE pubs
GO
SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type, 
   ISNULL(price, 0.00) AS Price
FROM titles
GO下面是结果集:Title           Type         Price          
--------------- ------------ -------------------------- 
The Busy Execut business     19.99                      
Cooking with Co business     11.95                      
You Can Combat  business     2.99                       
Straight Talk A business     19.99                      
Silicon Valley  mod_cook     19.99                      
The Gourmet Mic mod_cook     2.99                       
The Psychology  UNDECIDED    0.00                       
But Is It User  popular_comp 22.95                      
Secrets of Sili popular_comp 20.00                      
Net Etiquette   popular_comp 0.00                       
Computer Phobic psychology   21.59                      
Is Anger the En psychology   10.95                      
Life Without Fe psychology   7.00                       
Prolonged Data  psychology   19.99                      
Emotional Secur psychology   7.99                       
Onions, Leeks,  trad_cook    20.95                      
Fifty Years in  trad_cook    11.95                      
Sushi, Anyone?  trad_cook    14.99                      (18 row(s) affected)
请参见表达式IS [NOT] NULL系统函数WHERE©1988-2000 Microsoft Corporation。保留所有权利。

解决方案 »

  1.   

    CREATE PROCEDURE p_jytj
    @type1 smallint,@type2 smallint,@id char(18),@number int output,@price numeric(19,2) = 0 output
    AS
      

  2.   

    if @price is null or @@error = 100 select @price = 0
      

  3.   

    select前先对@price赋值为0即可,select条件没有满足的话不会改变其值的
      

  4.   

    在存储过程的最后一加上一句(end之前)就可以了.:set @price=isnull(@price,0)
    或:
    if @price is null set @price=0
      

  5.   

    在存储过程的最后加上一句就可以了:set @price=isnull(@price,0)

    if @price is null then set @price=0
      

  6.   

    CREATE PROCEDURE p_jytj
    @type1 smallint,@type2 smallint,@id char(18),@number int output,@price numeric(19,2) output
    AS
    if @type1=1/*买方*/
    begin
        if @type2=1 /*成功交易*/
             begin
                    select @number=count(form_id) 
                    from orderlist
                    where orderlist.user_id=@id and orderlist.re='交易成功'
                    select @price=sum(p_bm*number) 
                    from shoplist 
                    where shoplist.form_id in(
                    select orderlist.form_id
                    from orderlist
                    where orderlist.user_id=@id and orderlist.re='交易成功')
               end
           else/*未成功交易*/
               begin
                     select @number=count(form_id) 
                     from orderlist
                     where orderlist.user_id=@id and orderlist.re='正在交易中'
                    select @price=sum(p_bm*number) 
                    from shoplist 
                    where shoplist.form_id in(
                    select orderlist.form_id
                    from orderlist
                    where orderlist.user_id=@id and orderlist.re='正在交易中')
                end
      end
    else if @type1=2/*卖方*/
    begin
    if @type2=1 /*成功交易*/
             begin
                    select @number=count(form_id) 
                    from orderlist
                    where orderlist.p_gys_id=@id and orderlist.re='交易成功'
                    select @price=sum(p_newprice*number) 
                    from shoplist 
                    where shoplist.form_id in(
                    select orderlist.form_id
                    from orderlist
                    where orderlist.p_gys_id=@id and orderlist.re='交易成功')
               end
           else/*未成功交易*/
               begin
                     select @number=count(form_id) 
                     from orderlist
                     where orderlist.p_gys_id=@id and orderlist.re='正在交易中'
                    select @price=sum(p_newprice*number) 
                    from shoplist 
                    where shoplist.form_id in(
                    select orderlist.form_id
                    from orderlist
                    where orderlist.p_gys_id=@id and orderlist.re='正在交易中')
                end
    select @number=isnull(@number,0),@price=isnull(@price,0)
    end
      

  7.   

    此问题应该挺简单:
    如此种方法应该可以解决select case when @price is null then 0 else @price end
    如果不行的话,变通一下就可以了
      

  8.   

    网页边框为黑的话是因为你的<td>位置写的不对,你将<td>写在外面就可以了