与创建插入查询
努力创建Insert
语句organization
表是这样的:与创建插入查询
select'Insert into Organizations(Name,ContactPerson,ContactNumber,Mobilenumber)values('''+Nameofthecompany+''+','+Nameofthepersonresponsibleforrecruitment+','+PhoneNumber+','+MobileNumber+''')' from Organization
当我执行该语句,我得到INSERT语句。但问题是其中的值是零,这表明所有列null
。
例子:(数据库)
- 名称:XXXX
- 联系人:联系ZZZZ
- ContactNumber:444444
- 移动电话号码:空
所以我的INSERT语句长相像:
Null.
我只希望该列提供空。其他细节正确显示。有什么办法在sql服务器?帮助我的人......
串联什么NULL,甚至本身的结果,始终为NULL。解决方法与ISNULL功能:
select'Insert into Organizations(Name,ContactPerson,ContactNumber,Mobilenumber)
values('''+ISNULL(Nameofthecompany, 'NULL')+''+','
+ISNULL(Nameofthepersonresponsibleforrecruitment, 'NULL')+','
+ISNULL(PhoneNumber, 'NULL')+','
+ISNULL(MobileNumber, 'NULL')+''')'
from Organization
演示上SQLFiddle
注意:这将处理NULL,但不会引用字符串。看到我的答案在下面,两者都有。 – 2013-04-09 11:12:11
当你每个参数添加到SQL语句时,你需要检查它们是否为空,如果是使用关键字NULL,否则包括单引号包围的文字串,但请记住,如果字符串包含任何单引号,则需要用两个单引号替换它们。
更新SQL每个参数类似如下:
CASE WHEN MobileNumber IS NULL THEN 'NULL' ELSE '''' + REPLACE(MobileNumber, '''', '''''') + '''' END
我有近5000多条记录。其他地方的所有字段都有空值。 – PoliDev 2013-04-09 09:20:44
我不太了解你的评论。如果您正确处理SQL语句中的每个参数的NULL值,它将尽可能轻松地处理5000条记录,因为它可以处理1条记录。 – 2013-04-09 11:17:31
我想说的手段,我有这样OrganName,地址,PHONENO领域。我的价值观就像xxx,dkfjds,111111111那样。所以这个记录不包含空值。所以它没有pblm。另一个记录,yyy,Null,444444就是这样。所以我只得到结果“空”。其他两个值没有显示。这是问题,也解决了。 – PoliDev 2013-04-10 04:48:10
当然 - 只是用ISNULL(..)
把一个NULL
成如一个空字符串:
SELECT
'INSERT INTO Organizations(Name, ContactPerson, ContactNumber, Mobilenumber) VALUES(''' +
ISNULL(Nameofthecompany, '') + '' + ',' +
ISNULL(Nameofthepersonresponsibleforrecruitment, '') + ',' +
ISNULL(PhoneNumber, '') + ',' + ISNULL(MobileNumber,'') + ''')'
FROM Organization
只需使用参数,所有这些都会消失。 – usr 2013-04-09 09:27:04