Условный оператор в Проводит-sql

Существует ли способ сделать, это короче, например, с помощью своего рода условного оператора в Проводит-sql?

IF @ParentBinaryAssetStructureId = -1
BEGIN
    SET @ParentBinaryAssetStructureId = NULL
END

UPDATE  BinaryAssets.BinaryAssetStructures 
SET     ParentBinaryAssetStructureId = @ParentBinaryAssetStructureId
WHERE   BinaryAssetStructureId = @OriginalBinaryAssetStructureId
5
задан Lieven Cardoen 18 January 2010 в 20:30
поделиться

3 ответа

Использование Nullif ()

UPDATE  BinaryAssets.BinaryAssetStructures 
SET     ParentBinaryAssetStructureId = NULLIF(@ParentBinaryAssetStructureId,-1)
WHERE   BinaryAssetStructureId = @OriginalBinaryAssetStructureId
7
ответ дан 18 December 2019 в 14:46
поделиться
UPDATE  BinaryAssets.BinaryAssetStructures 
SET     ParentBinaryAssetStructureId =
   CASE  ParentBinaryAssetStructureId  
     WHEN -1 THEN NULL
     ELSE ParentBinaryAssetStructureId
   END
WHERE   BinaryAssetStructureId = @OriginalBinaryAssetStructureId

Дайте это Whirl

2
ответ дан 18 December 2019 в 14:46
поделиться

Торговый (условный) оператор в C вроде языков:

x = doSomething ? 5 : 7

будет написан так в SQL:

SELECT @x = CASE WHEN @doSomething = 1 THEN 5 ELSE 0 END

могут быть несколько случаев (когда пункты):

SELECT @x = CASE WHEN @doSomething = 1 THEN 5 WHEN @somethingElse = 1 THEN 20 ELSE 0 END
4
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: