1

我为这样的表创建Insert语句organization

select'Insert into Organizations(Name,ContactPerson,ContactNumber,Mobilenumber)values('''+Nameofthecompany+''+','+Nameofthepersonresponsibleforrecruitment+','+PhoneNumber+','+MobileNumber+''')' from Organization

当我执行此语句时,我得到插入语句。但问题是值为 null 的地方,它显示所有列null

示例:(在数据库中)

  • 姓名:xxx
  • 联系人:zzzz
  • 联系电话:444444
  • 手机号码:空

所以我的插入语句看起来像:

Null.

我只希望该列提供空值。其他细节正确显示。sql server有什么办法吗?任何人都帮我...

4

3 回答 3

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上的演示

于 2013-04-09T09:19:15.780 回答
1

当然 - 只是ISNULL(..)用来将 aNULL变成例如一个空字符串:

SELECT 
    'INSERT INTO Organizations(Name, ContactPerson, ContactNumber, Mobilenumber) VALUES(''' + 
    ISNULL(Nameofthecompany, '') + '' + ',' + 
    ISNULL(Nameofthepersonresponsibleforrecruitment, '') + ',' + 
    ISNULL(PhoneNumber, '') + ',' + ISNULL(MobileNumber,'') + ''')' 
FROM Organization
于 2013-04-09T09:19:34.310 回答
0

在将每个参数添加到 SQL 语句时,需要检查它们是否为空,如果是,请使用关键字 NULL,否则请包含用单引号括起来的文字字符串,但请记住,如果字符串包含任何单引号,都需要用两个单引号替换。

更新每个参数的 SQL,如下所示:

CASE WHEN MobileNumber IS NULL THEN 'NULL' ELSE '''' + REPLACE(MobileNumber, '''', '''''') + '''' END
于 2013-04-09T09:18:42.643 回答