我有一个关于增加表中列的问题。所以我想要实现的是,
我正在使用PHP程序,以便当用户按下按钮时插入每一行,每行插入时DO_NO加1。
我的SQL命令是什么,
insert into delivery (packing_no, do_no) values ('PACKING1', ((select max(do_no) from delivery)+1))
packing_no基于文本输入
插入问题是,
有人可以建议我更好的解决方法吗?
感谢。
答案 0 :(得分:1)
您可以使用CASE
条件,但我没有看到任何其他方法来实现此目的。
DECLARE varMax(INT)
SET varMax = (select max(do_no) from delivery);
insert into delivery (packing_no, do_no)
values ('PACKING1', (CASE WHEN varMax IS NULL THEN 1 ELSE (varMax +1))
或者为了简化,您也可以检查行数
SET varMax = (select count(do_no) from delivery);
如其他答案所述,进一步简化它,使用ISNULL
insert into delivery (packing_no, do_no)
values ('PACKING1', (select ISNULL(max(do_no),0)+1 from delivery))
答案 1 :(得分:1)
在这种情况下使用ISNULL
insert into delivery (packing_no, do_no) values ('PACKING1', (select ISNULL(max(do_no),0)+1 from delivery))
ISNULL正在做的是在do_no为NULL或为空时返回0。