0

以下のスクリプトを実行できないのはなぜですか?どうすれば修正できますか? エラーが発生しますInccorect syntax near '='。を使用して実行してい...= 1 THEN 'D' ELSE '' END as Asetましたが、3 番目のケースで Aset と Bset を確認する必要があるため、代わりに Aset と Bset を宣言しました。

declare @Aset varchar(10)
declare @Bset varchar(10)
UPDATE m
    SET m.new_name = m.new_name + ' ' + @ASet + AndSet + @BSet + ' Type'
FROM contactMaster m
inner join contact c on 
    m.contactid = c.contactid
     CROSS APPLY (
         SELECT CASE @Aset WHEN (c.category1|
                            c.category2|
                            c.category3|
                            c.category4) = 1 THEN 'C' ELSE '' End
               ,CASE @Bset WHEN (c.category5|
                            c.category6|
                            c.category7|
                            c.category8) = 1 THEN 'D' ELSE '' END
                ,CASE WHEN @BSet = 'D' and  @ASet  = 'C' THEN ' & ' ELSE '' END AS AndSet
     ) AS CA1
4

1 に答える 1

1

私はあなたのテーブル スキーマやデータを持っていません。

UPDATE      m
SET         m.new_name = m.new_name 
                         + ' ' 
                         + CA1.ASet 
                         + CASE WHEN 
                           (
                                CA1.Aset = 'C' AND 
                                CA1.Bset = 'D' 
                           ) 
                           THEN ' & ' ELSE '' END 
                         + CA1.BSet + ' Type'

FROM        contactMaster   m
JOIN        contact         c on m.contactid = c.contactid
CROSS APPLY (
                SELECT  CASE WHEN 
                        (
                            c.category1 |
                            c.category2 |
                            c.category3 |
                            c.category4
                        ) 
                        = 1 THEN 'C' ELSE '' END AS Aset,
                        CASE WHEN 
                        (
                            c.category5 |
                            c.category6 |
                            c.category7 |
                            c.category8
                        ) 
                        = 1 THEN 'D' ELSE '' END AS Bset
            ) AS CA1
于 2013-10-18T16:44:01.213 に答える