JSP 留言板,SQL server2008的设置初值的有关问题
JSP 留言板,SQL server2008的设置初值的问题语句是:String sqlINSERT INTO note VALUES((select MAX(id)
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),?,?,?)";这句话的意思吗?还是……
[其他解释]是的....因为我看到你貌似是问这句话是什么意思
[其他解释]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代替
[其他解释]真的非常感谢