以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  select * 与count(*)为什么执行结果不一样  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120442)

--  作者:happyft
--  发布时间:2018/6/15 17:08:00
--  select * 与count(*)为什么执行结果不一样
IF NOT EXISTS (SE LECT count(*) FROM 编号记录 WHERE 表名 = \'采购入库单\' )
INSERT INTO 编号记录 (表名,编号字段,编号结构, 顺序号,已用标识VALUES(\'采购入库单\', \'入库单号\', \'cr1806-000\', 2, 1);

IF NOT EXISTS (SE LECT * FROM 编号记录 WHERE 表名 = \'采购入库单\' )
INSERT INTO 编号记录 (表名,编号字段,编号结构, 顺序号,已用标识VALUES(\'采购入库单\', \'入库单号\', \'cr1806-000\', 2, 1);

当表中没有记录时就插入一条记录,但是上面用count(*)的那条insert 语句就不会执行,
而下面这条就可以插入数据 ,这种情况下两者到底有什么不一样?

谢谢!

--  作者:有点甜
--  发布时间:2018/6/15 17:16:00
--  

回复楼上,那个是固定语法,没有为什么。

 

如果你要先得到count再比较,需要直接执行sql语句得到count值,再判断是否大于0