4

男性と女性を比較する select ステートメントを作成し、いくつかの値を置き換えます。私は2つのテーブルを持っています。

表1:

  • 男性(正誤問題)
  • 女性(正誤問題)

表 2:

  • 性別値 ('M'、'F'、'B')

テーブル 2 からテーブル 1 への select ステートメントを作成したいのですが、クエリは次のとおりです。

select 'insert into table1(Male,female)values('+
   Isnull(cast(case  Gender when  'M' or 'B' Then '''True''' else '''false''' end as varchar),'NULL')+','+
   Isnull(cast(case  Gender when 'F' or'B' Then '''True''' else '''false''' End as varchar),'NUll')+')'
   from Table2

しかし、ここで or operator not using ここでエラーが発生します。演算子を使用して両方の値を選択する方法。誰か私に提案してください...

4

3 に答える 3

2

動的 SQL を使用するには、変数を宣言する必要があります。また、コードのテストにも役立ちます

DECLARE @dml nvarchar(max) = N''
select @dml += 'insert into table1(Male,female)values('+
   Isnull(cast(case when Gender IN('M', 'B') 
                    Then '''True''' else '''false''' 
               end as varchar),'NULL')+','+
   Isnull(cast(case when Gender IN('F', 'B') 
                    Then '''True''' else '''false''' 
               end as varchar),'NUll')+')' + CHAR(13) + CHAR(10)
from Table2
PRINT @dml
于 2013-04-15T06:42:23.180 に答える