我为Insert
表创建organization
语句,如下所示:
select'Insert into Organizations(Name,ContactPerson,ContactNumber,Mobilenumber)values('''+Nameofthecompany+''+','+Nameofthepersonresponsibleforrecruitment+','+PhoneNumber+','+MobileNumber+''')' from Organization
当我执行这个语句时,我得到了insert语句。但问题是值为null,它显示所有列null
。
示例:(在数据库中)
所以我的插入语句如下:
Null.
我只希望该列提供null。其他细节显示正确。在sql server中有什么办法吗?帮帮我......
答案 0 :(得分:1)
将任何内容连接到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上的演示
答案 1 :(得分:1)
当然 - 只需使用ISNULL(..)
将NULL
变为例如一个空字符串:
SELECT
'INSERT INTO Organizations(Name, ContactPerson, ContactNumber, Mobilenumber) VALUES(''' +
ISNULL(Nameofthecompany, '') + '' + ',' +
ISNULL(Nameofthepersonresponsibleforrecruitment, '') + ',' +
ISNULL(PhoneNumber, '') + ',' + ISNULL(MobileNumber,'') + ''')'
FROM Organization
答案 2 :(得分:0)
当您将每个参数添加到SQL语句时,您需要检查它们是否为空,如果是,请使用关键字NULL,否则请包含用单引号括起来的文字字符串,但要记住,如果该字符串包含任何单引号,需要用两个单引号替换。
更新每个参数的SQL,如下所示:
CASE WHEN MobileNumber IS NULL THEN 'NULL' ELSE '''' + REPLACE(MobileNumber, '''', '''''') + '''' END