Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当表1中的字段为空时,如何仅将记录插入表2中_Sql_Sql Server_If Statement_Insert - Fatal编程技术网

Sql 当表1中的字段为空时,如何仅将记录插入表2中

Sql 当表1中的字段为空时,如何仅将记录插入表2中,sql,sql-server,if-statement,insert,Sql,Sql Server,If Statement,Insert,Im使用sql server,需要根据多个条件插入到表中。我知道怎么做这部分。但是,im从中提取的表(称为accnt)有一个“imported”列,该列要么为空,要么有一个x。我只想在导入的列为空且其值为“”时,将accnt中的记录插入表2中,称为quick。下面的代码是我尝试过的,但它不起作用。insert语句不尝试告诉它仅在导入=“”的位置插入即可 IF accnt.imported = '' then ( INSERT INTO quick (date, num, name, acc

Im使用sql server,需要根据多个条件插入到表中。我知道怎么做这部分。但是,im从中提取的表(称为accnt)有一个“imported”列,该列要么为空,要么有一个x。我只想在导入的列为空且其值为“”时,将accnt中的记录插入表2中,称为quick。下面的代码是我尝试过的,但它不起作用。insert语句不尝试告诉它仅在导入=“”的位置插入即可

IF accnt.imported = ''
then (
   INSERT INTO quick (date, num, name, account, amount) 
   SELECT invdate,
   case when accnt.accno < '7000' then code else invno end
   , ven, accno, amnt from accnt 
)
如果accnt.imported=''
然后(
插入quick(日期、数字、名称、帐户、金额)
选择invdate,
当accnt.accno<'7000'时,则代码没有结束
,ven,accno,来自accnt的amnt
)
我还尝试:

WHEN accnt.imported = ''
INSERT INTO quick (date, num, name, account, amount)
SELECT invdate,
case when accnt.accno < '7000' then code else invno end
, ven, accno, amnt from accnt
当accnt.imported=''时
插入quick(日期、数字、名称、帐户、金额)
选择invdate,
当accnt.accno<'7000'时,则代码没有结束
,ven,accno,来自accnt的amnt

如何让这个概念发挥作用?

以下内容是否还不够

INSERT INTO quick (date, num, name, account, amount) 
SELECT invdate,
case when accnt.accno < '7000' then code else invno end
, ven, accno, amnt 
FROM accnt
WHERE ISNULL(accnt.imported, '') = ''
插入quick(日期、数字、姓名、帐户、金额)
选择invdate,
当accnt.accno<'7000'时,则代码没有结束
,ven,accno,amnt
来自accnt
其中ISNULL(accnt.imported,“”)为“”

您确定导入的
中有空字符串吗?也许您要检查的是
null
如果accnt.imported为null
…为什么两者都不为空
如果ISNULL(accnt.imported“”)=''
是,它肯定是一个空字符串这意味着您有一个表
accnt
,其中包含许多行。您只想插入accnt中特定字段不为空的所有行吗?对吗?不,只有部分行从accnt插入到quick,并且有一个条件用于quick.num字段的提取。我只想取accnt.imported为空的行,如果他只想导入那些为空的行。对但是问题有点不清楚。是的,这奏效了,谢谢你,我不敢相信我没有想到这一点