14

私は次のSQLを持っています:

UPDATE TableA
SET first_name = 'AAA',
    last_name = 'BBB',
    address1 = '123',
    address2 = 'Fake St.,',
    phone = '1234567',
    id = '11223344'

nullでない場合にのみ各列を更新するには、何を使用すればよいですか?

4

3 に答える 3

33
update tableA
set first_name = case when first_name is null then null else 'aaa' end,
last_name = case when last_name is null then null else 'bbb' end,
...
于 2012-08-27T09:13:04.493 に答える
1

あまり冗長ではない(そして読みにくい)もう1つのアプローチ:

UPDATE TableA
SET first_name = left(  'AAA' + first_name, 3 )  ,
    last_name = left(  'BBB' + last_name, 3 )  ,
    address1 = left(  '123' + address1, 3 )  ,
    address2 = left(  'Fake St.,' + address2, len( 'Fake St.,' ) )  ,
    ...
于 2012-08-27T09:28:07.663 に答える
0

この例では、ISNULL関数を使用します。

UPDATE TableA
SET first_name = ISNULL(first_name, NULL, 'AAA'),
    last_name = ISNULL(last_name, NULL, 'BBB'),
    (...)
GO
于 2021-12-09T22:07:24.633 に答える