t-SQL IF ... ELSE和多个值

时间:2015-06-05 17:23:42

标签: sql tsql

我遇到两个问题:

ALTER PROCEDURE pracownik_zamowienie (@id int)

AS

IF (SELECT EmployeeID FROM Orders WHERE EmployeeID LIKE @id) LIKE @id
BEGIN
    SELECT OrderID FROM Orders
    END

    ELSE
        BEGIN
        SELECT OrderID, EmployeeID FROM Orders
        END

这一个:

ALTER PROCEDURE dwa_produkty1 (@id1 int, @id2 int) AS

IF (SELECT OrderID FROM [Order Details] WHERE ProductID LIKE @id1) LIKE (SELECT OrderID FROM [Order Details] WHERE ProductID LIKE @id2)
BEGIN
    SELECT OrderID FROM [Order Details]
END

首先,我希望获得自己键入ID的员工的orderID,但它不起作用。当我输入不在数据库中的ID时,查询返回正确的答案。

在第二个查询中,我想得到的答案应该是OrderID的列表,其中包含两个不同的ProductID。

你能帮帮我吗?谢谢

1 个答案:

答案 0 :(得分:0)

我认为这将回答你的第一个问题

IF EXISTS(SELECT EmployeeID FROM Orders WHERE EmployeeID =@id)
BEGIN
    SELECT OrderID FROM Orders WHERE EmployeeID =@id
END

ELSE
    BEGIN
       SELECT OrderID, EmployeeID FROM Orders
    END

第二个查询应该是这样的:

SELECT OrderID FROM where ProductID IN (@id1, @id2)