2016-10-11 6 views
0

Warum gibt meine switch-Anweisung eine 0 für alle übereinstimmenden Werte statt des "switch" -Werts zurück? Wenn es kein übereinstimmender Wert ist, wird leer zurückgegeben, was korrekt ist.Switch-Anweisung gibt 0 zurück

Hier ist meine Syntax, die

SELECT [ICC]=Switch([ICC]="UV1","RP1",[ICC]="UV2","RP2",[ICC]="UV3","RP3") AS Expr1 
FROM UVMaster; 
+0

Möchten Sie den Wert von "[ICC]" auf den vom Switch zurückgegebenen Wert ändern? –

+0

@EdPlunkett Ja, wenn ICC = UV1, dann RP1 anzeigen, wenn ICC = UV2, dann RP2, wenn ICC = UV3, dann RP3 anzeigen – BellHopByDayAmetuerCoderByNigh

+0

Sie benötigen ein Update, um den Wert in der Tabelle zu ändern. Select wird das '=' einfach als Vergleich interpretieren, und ich denke, es gibt "0" für "false" zurück, weil der neue Wert nicht gleich dem alten ist. –

Antwort

0

Entfernen Sie die [ICC] = am Anfang Ihrer Switch-Anweisung auf meinen Neuling Auge gültig aussieht. Es sollte wie folgt aussehen. Kann nicht beantworten, warum es eine Null zurückgibt, aber das sollte es beheben.

SELECT Switch([ICC]="UV1","RP1",[ICC]="UV2","RP2",[ICC]="UV3","RP3") AS Expr1 
FROM UVMaster; 
+0

Das hat es! Bis bald als Antwort zu akzeptieren. Vielen Dank! – BellHopByDayAmetuerCoderByNigh

+0

Ich weiß jetzt, was ich getan habe, ich brauchte eine Update-Anweisung, aber testete zuerst mit einem Select, um die korrekte Syntax zu gewährleisten. Also würde mein Update eigentlich Update UVMaster Set ICC = switch lesen .... während die Select-Anweisung nur Select-Schalter liest ... – BellHopByDayAmetuerCoderByNigh

+0

Sinnvoll, einfach durcheinander. Tu mir einen Gefallen und markiere die Antwort, wenn sie verfügbar ist. Und kein Problem! –

Verwandte Themen