Kan man på något vis tilldela en variebel med expressionet i en SELECT CASE THEN? Nej.SELECT CASE
CASE WHEN (SELECT SUM(mh.MatchResultRoundResult2)- SUM(ma.MatchResultRoundResult2) FROM bo_MatchResult mh INNER JOIN
bo_MatchResult ma ON (mh.MatchResultMatchId = ma.MatchResultMatchId AND mh.MatchResultHomeOrAwayTeam = 'H'
AND mh.MatchResultMatchId = @parmMatchResultId )) < 0 THEN 1
Dettar blir i mitt fall en '1' Men jag skulle vilja använda mig av THEN (@varHomeResult +1)
Så man efteråt kan summera @varHomeResult
Jag har 8 olika MatchResultRoundResult att kontrollera.
Sv: SELECT CASE
Ingen tilldelning av variabler ät tillåtet i en CASE sats.
Men man kan skrivaa som du vill.
Alltså "THEN (@varHomeResult + 1)"
Däremot kan en CASE sats tilldela sitt reultat till en variabel.
Ex.
<code>
DECLARE @var1 int;
DECLARE @var2 int;
SET @var1 = -1;
SET @var2 = -2;
SELECT
@var1 = CASE WHEN 1 < 2 THEN (@var1 + 1) ELSE 2 END,
@var2 = CASE WHEN 2 < 1 THEN 1 ELSE (@var2 + 2) END
</code>
Annars så fungerar det att bara skriva CASE i SELECT, utan tilldelning.
<code>
DECLARE @var1 int;
DECLARE @var2 int;
SET @var1 = -1;
SET @var2 = -2;
SELECT
CASE WHEN 1 < 2 THEN (@var1 + 1) ELSE 2 END,
CASE WHEN 2 < 1 THEN 1 ELSE (@var2 + 2) END
</code>