4

テーブルの挿入クエリを作成しOrganizationます。

select 'Insert into Organizations(Name, IndustryId, ContactPerson, Email, Website, LocationId, ContactNumber, Mobilenumber) values(''' + 
       IsNull(Nameofthecompany, 'NULL') + ''',' + 
       Isnull(IndustryType, 'NULL') + ',''' +
       Isnull(Nameofthepersonresponsibleforrecruitment, 'NULL') + ''', ''' +
       Isnull(EmailId, 'NULL') + ''', ''' +
       Isnull(websiteaddress, 'NULL') + ''',' +
       Isnull(Location, 'NULL') + ',' +
       Isnull(PhoneNumber, 'NULL') + ',' +
       Isnull(MobileNumber, 'NULL') + ')' 
from Organization

ここに結果セットがあります

Insert into Organizations(Name, IndustryId, ContactPerson, Email, Website, LocationId, ContactNumber, Mobilenumber)
values('username', industry, 'Name', 'NULL', 'NULL', place, NULL, 999999999)

引用符内に NULL 値を入れたくありません。引用符を削除すると、エラーが発生することを意味します。問題を見つけるのを手伝ってください..

4

2 に答える 2

2

値が NULL の場合、それを文字列に追加すると NULL が生成されます。これにより、ISNULL チェックに引用符を追加し、チェックの true 値に NULL を生成するだけで、必要に応じて null または null 以外の正しい構文を生成できます。

select 'Insert into Organizations(Name, IndustryId, ContactPerson, Email, Website, LocationId, ContactNumber, Mobilenumber) values(' + 
       IsNull(''''+Nameofthecompany+'''', 'NULL') + ', ' + 
       Isnull(''''+IndustryType+'''', 'NULL') + ', ' +
       Isnull(''''+Nameofthepersonresponsibleforrecruitment+'''', 'NULL') + ', ' +
       Isnull(''''+EmailId+'''', 'NULL') + ', ' +
       Isnull(''''+websiteaddress+'''', 'NULL') + ', ' +
       Isnull(''''+Location+'''', 'NULL') + ', ' +
       Isnull(PhoneNumber, 'NULL') + ', ' +
       Isnull(MobileNumber, 'NULL') + ')' 
from Organization
于 2013-04-10T05:42:52.680 に答える
2

NULLNULL 値に (文字列ではなくリテラルとして)使用する場合、INSERTステートメントの作成はさらに複雑になります。値が の場合は、先頭と末尾にリテラルNULL追加する必要があります。NULL '

CASEこれを行う列ごとに、次のようなステートメントを使用する必要があります。

select 'INSERT INTO Organizations(.....) ' + 
       'VALUES(' + 
       CASE 
           WHEN NameOfTheCompany IS NOT NULL 
              THEN '''' + NameOfTheCompany + ''', '
              ELSE 'NULL, ' 
       END + 
       CASE 
           WHEN IndustryType IS NOT NULL 
              THEN '''' + IndustryType + ''', '
              ELSE 'NULL, ' 
       END +
       ..... and so on ......
       + ')'

...など、列ごとにこのCASEステートメントが必要です....

于 2013-04-10T05:43:12.730 に答える