Sql 当表1中的字段为空时,如何仅将记录插入表2中
Im使用sql server,需要根据多个条件插入到表中。我知道怎么做这部分。但是,im从中提取的表(称为accnt)有一个“imported”列,该列要么为空,要么有一个x。我只想在导入的列为空且其值为“”时,将accnt中的记录插入表2中,称为quick。下面的代码是我尝试过的,但它不起作用。insert语句不尝试告诉它仅在导入=“”的位置插入即可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
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为空的行,如果他只想导入那些为空的行。对但是问题有点不清楚。是的,这奏效了,谢谢你,我不敢相信我没有想到这一点