Set Variable Wert vorhanden ist Bedingung, sql server
Declare @CategoryID as int
BEGIN
SELECT
(CASE
WHEN EXISTS(
SELECT t0.Categoryid AS [EMPTY]
FROM Categories AS [t0]
WHERE [t0].Categoryname = @CategoryName
) THEN 1
ELSE 0
END) AS [value]
wenn ich meine variable innerhalb von block existiert mit t0.Categoryid, wie konnte ich das tun ?
was ich will, ist zu ersetzen dann 1 der Kategorie-id-Wert...
vielen Dank im Voraus..
- DANN 1 wird, DANN SET @CategoryId = 1. Besser... SELECT CategoryId = (- Fall....)
- ich möchte set @categoryid, um den Wert der select-Anweisung..
- Man kann sicherlich nicht eine
SET
- Anweisung innerhalb einerCASE
- Anweisung.SET @c = CASE WHEN x THEN y ELSE z END
gültig ist, aberCASE WHEN x THEN SET @c = y ELSE SET @c = z END
sicherlich nicht. - Ja, ich habe aktualisiert mein Kommentar mit
SELECT @categoryId = (case...)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Andere Möglichkeit wäre so etwas wie ....
Diese wird wieder die Kategorie-id, wenn es vorhanden ist, und 0, falls nicht.
Allerdings würde ich empfehlen nur null zurückgeben, wenn es nicht vorhanden ist, oder der Rückkehr eine zusätzliche @Existiert (BIT), das angibt, ob es existiert oder nicht.
My 2 cents...
Yo kann versuchen wie diese.
WENN der Kategorie name Vorhanden ist, als seinen weisen Sie die Kategorie-Id der Kategorie, ansonsten bleibt Sie null.