日期:2014-05-17  浏览次数:20519 次

JSP 留言板,SQL server2008的设置初值的问题
语句是:
String sql="INSERT INTO note VALUES((select MAX(id) from note)+1,?,?,?)";
当没有插入数据时,select MAX(id) from note结果是null,所以,当note表里没有数据时,留言不到。
我想当note里没有数据时,id值默认值为0,怎么做?
------最佳解决方案--------------------
当MAX(id)的值为null时,赋值1,这样就不会出现null值而导致程序insert没结果
------其他解决方案--------------------
String sql="INSERT INTO note VALUES(isnull((select MAX(id) from note)+1,1),?,?,?)";
------其他解决方案--------------------
引用:
String sql="INSERT INTO note VALUES(isnull((select MAX(id) from note)+1,1),?,?,?)";


好感动!!谢谢。可以了。但是我想知道是这个语句是什么呢?
------其他解决方案--------------------
引用:
当MAX(id)的值为null时,赋值1,这样就不会出现null值而导致程序insert没结果

    你在解释String sql="INSERT INTO note VALUES(isnull((select MAX(id) from note)+1,1),?,?,?)";这句话的意思吗?还是……
------其他解决方案--------------------
引用:
引用:当MAX(id)的值为null时,赋值1,这样就不会出现null值而导致程序insert没结果
    你在解释String sql="INSERT INTO note VALUES(isnull((select MAX(id) from note)+1,1),?,?,?)";这句话的意思吗?还是……
是的....因为我看到你貌似是问这句话是什么意思
------其他解决方案--------------------
引用:
引用:引用:当MAX(id)的值为null时,赋值1,这样就不会出现null值而导致程序insert没结果
    你在解释String sql="INSERT INTO note VALUES(isnull((select MAX(id) from note)+1,1),?,?,?……

isnull((select MAX(id) from note)+1,1)这句,
我还是需要分解听
isnull是来判断这个语句select MAX(id) from note是否为null?
((select MAX(id) from note)+1,1)后面的1是如果select MAX(id) from note是为null就赋值为1?
------其他解决方案--------------------
isnull判断括号里面的值是否为null,如果为null,则使用isnull(xxx,xxx)红字的那个值来代替。
------其他解决方案--------------------
你可以做个实验:
declare @a varchar(10) 
 set @a=NULL
 SELECT ISNULL(@a,1)

这句话就是说,如果变量@a为null则以1代替

------其他解决方案--------------------
引用:
你可以做个实验:
declare @a varchar(10) 
 set @a=NULL
 SELECT ISNULL(@a,1)

这句话就是说,如果变量@a为null则以1代替


真的非常感谢