sql >> Databasteknik >  >> RDS >> Sqlserver

Använd set i en case-sats i SQL Server

Du kan inte använda case som en flödeskontroll. Ett SQL case är ett uttryck som returnerar ett skalärt värde baserat på villkor.
Det är väldokumenterat i anmärkningar avsnitt:

En fungerande kod skulle skrivas så här:

DECLARE @UNITY VARCHAR(5)
DECLARE @AUX VARCHAR(5)

SET @AUX = 
CASE @UNITY
    WHEN 'U1' THEN 'M1'
    WHEN 'U2' THEN 'M2'
    WHEN 'U3' THEN 'M3'
END 

Notera att jag använder uttryckssyntaxen Simple CASE för korthetens skull.




  1. Oracle RAC och sekvenser

  2. Varför kan jag inte använda min Oracle användardefinierade typ så här?

  3. Hur använder man MAX i MySQL?

  4. Hur undkommer jag en mysql-sökning/gilla-fråga korrekt?