读书人

JSP 留言板SQL server2008的设置初值

发布时间: 2012-12-17 09:31:40 作者: rapoo

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代替


真的非常感谢

读书人网 >SQL Server

热点推荐