Set Variable value in existiert condition 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 innen setzen will, existiert Block mit t0.Categoryid wie könnte ich das machen?

was ich will, ist zu replace dann 1 auf die Kategorie id Wert …

Danke im Voraus..

Solutions Collecting From Web of "Set Variable value in existiert condition sql server"

 Declare @CategoryID as int SET @CategoryID = CASE WHEN EXISTS(SELECT 1 FROM Categories WHERE Categoryname = @CategoryName) THEN 1 ELSE 0 END 

Ein anderer path wäre so etwas wie …

 IF EXISTS (SELECT 1 FROM Categories WHERE Categoryname = @CategoryName) BEGIN SET @CategoryID = 1; END ELSE BEGIN SET @CategoryID = 0; END 

Dies gibt die Kategorie-ID zurück, falls vorhanden, und 0, wenn dies nicht der Fall ist.

 SET @CategoryID = null; SELECT @CategoryID = t0.Categoryid FROM Categories AS [t0] WHERE [t0].Categoryname = @CategoryName; IF @CategoryID IS NULL SET @CategoryID = 0; SELECT @CategoryID AS [value]; 

Allerdings würde ich empfehlen, einfach zurückzukehren null, wenn es nicht existiert, oder die Rückgabe eines zusätzlichen @Exists (BIT), um anzugeben, ob es existiert oder nicht.

So kann ich das probieren.

 Declare @CategoryID as int Set @CategoryID =0; SELECT @CategoryID=t0.Categoryid FROM Categories AS [t0] WHERE [t0].Categoryname = @CategoryName 

IF-Kategorenname existiert als die Zuordnung der Kategorie-ID dieser Kategorie ansonsten bleibt sie Null.

 Declare @CategoryID as int SET @CategoryID = (SELECT t0.Categoryid AS [EMPTY] FROM Categories AS [t0] WHERE [t0].Categoryname = @CategoryName) SET @CategoryID =COALESCE(@CategoryID ,0)