1
我需要在存儲過程開始時創建並填充臨時表。我需要以兩種方式之一填充表,具體取決於傳遞給存儲過程的參數是否爲NULL。使用CASE語句插入臨時表
下面的僞SQL是我想要做的。 fnSplit是一個自定義函數,它將','字符上的字符串分開並返回表([Value] nvarchar(4000))。
DECLARE @ids varchar(max)
DECLARE @orders TABLE
(
ProductID int,
BrandID int
)
IF ISNULL(@ids)
INSERT INTO @orders
SELECT
PO.ProductID,
PO.BrandID
FROM dbo.ProductOrders PO
ELSE
INSERT INTO @orders
SELECT
PO.ProductID,
PO.BrandID
FROM fnSplit(@ids, ',')
JOIN dbo.ProductOrders PO on Value = PO.ID
END
如何使用vaid SQL實現上述功能?也許使用CASE語句?請注意,存儲過程中的主邏輯位於該塊之後,並使用@orders表。
只要改變`IF ISNULL(@ids)``到IF @ids IS NULL` – 2011-02-16 03:37:12