在sql server中使用IF ELSE(在IF语句中放入什么)

时间:2014-10-13 15:10:15

标签: sql sql-server

我正在使用IF语句将数据插入到ProductTable中(使用此名称作为示例)所以我如何打开IF语句...下面调用IF查询但从未到达else,如果它表中确实存在,所以这里是我目前所处位置的一个例子。我的错误在于开始时的IF语句,但我无法确定要使其工作的内容

IF NOT EXISTS(SELECT TOP 1 ProductID FROM ProductTable)
BEGIN
    INSERT
    (ProductName, UnitPrice)
        SELECT
        ProductView.ProductName,
        ProductView.UnitPrice
    FROM ProductView
    INNER JOIN ProductTable ON ProductView.ProductID = ProductTable. ProductID
    WHERE ProductID = (SELECT TOP 1 ProductID FROM ProductTable ORDER BY changedate DESC)
    AND NOT EXISTS(SELECT 1 FROM ProductTable WHERE ProductView.ProductID = ProductTable.ProductID)
END
ELSE
    INSERT
    (ProductName, UnitPrice)
        SELECT
        ProductView.ProductName,
        UnitPrice = 0.00
    FROM ProductView
    INNER JOIN ProductTable ON ProductView.ProductID = ProductTable. ProductID
    WHERE ProductID = (SELECT TOP 1 ProductID FROM ProductTable ORDER BY changedate DESC)

2 个答案:

答案 0 :(得分:1)

怎么样

SELECT TOP 1 1 FROM Table1

IF @@ROWCOUNT = 0
BEGIN

   -- Do stuff

END

答案 1 :(得分:0)

这就是我追求的目标:

IF NOT EXISTS(SELECT ProductTable.CustomerReference FROM ProductTable)
BEGIN
something
END
ELSE
something else

我不需要包含TOP 1,而且我错过了将其引用到主表的关系