Je dois mettre à jour la table, et je ne peux pas utiliser else si dans tsql. Est-ce qu'il existe?else Si dans tsql
Status =
(
CASE
WHEN
(Status in (0))
THEN
0
ELSE IF Status in (1)
THEN
7
ELSE
Status
END
Je dois mettre à jour la table, et je ne peux pas utiliser else si dans tsql. Est-ce qu'il existe?else Si dans tsql
Status =
(
CASE
WHEN
(Status in (0))
THEN
0
ELSE IF Status in (1)
THEN
7
ELSE
Status
END
Le CASE WHEN syntax ne supporte plusieurs conditions:
Status = CASE WHEN Status = 0 THEN 0
WHEN Status = 1 THEN 7
ELSE Status
END
Puisque vous comparez le même domaine pour l'égalité dans les deux cas, vous pouvez utiliser la notation plus courte:
Status = CASE Status WHEN 0 THEN 0
WHEN 1 THEN 7
ELSE Status
END
Utilisez à nouveau CASE QUAND:
Status = CASE WHEN Status in (0)
THEN 0
ELSE CASE WHEN Status in (1)
THEN 7
ELSE Status
END
END
ou
Status = CASE WHEN Status in (0) THEN 0
WHEN Status in (1) THEN 7
ELSE Status
END
Oui, vous pouvez utiliser les instructions IF dans SQL. Cocher cette
Declare @x int
set @x = 29
if @x = 29 print 'The number is 29'
if @x = 30 print 'The number is 30'
Pas utile pour une instruction de mise à jour basée sur un ensemble. –
Vous devez utiliser la syntaxe suivante:
Status =
(CASE WHEN (Status in (0)) THEN 0
WHEN (Status in (1)) THEN 7
ELSE Status
END)
essayer
Status =
(
CASE
WHEN
(Status in (0))
THEN
0
WHEN Status in (1)
THEN
7
ELSE
Status
END
Oui, il existe - mais pas lorsque votre SQL ne marche pas de sens. Statut IN (0) ?? Qu'est-ce que vous essayez de réaliser ??? – RPM1984
C'est seulement un exemple. Réel il y aura plus de statuts – user278618