mar*_*ith 3 t-sql sql-server stored-procedures
任何人都可以帮我在sql server中的存储过程中构建IF.
基本上我有一个简单的存储过程,但我现在需要传入一个新的输入参数,这取决于它是否为真我传递值D,如果它是假,我传递值A.但是更改是在子查询的中间.让我解释一下......这是存储过程.基本上如果我为ReturnOldStatus发送True,我执行子查询ItemStatus ='D',如果它是false,那么我传入ItemStatus ='A'
CREATE PROCEDURE [dbo].[MyTempStoredProc]
(
@IdOffice Int,
@ReturnOldStatus bit
)
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM Offices
WHERE
IdOffice = @IdOffice
AND (V.OffType NOT IN (
SELECT * FROM MiscOff
WHERE
ItemStatus= 'D') // This needs to be ItemStatus ='A' if FALSE is passed in on the input param
Run Code Online (Sandbox Code Playgroud)
有任何想法吗??
谢谢
我会像这样解决它:
declare @itemStatus varchar(1);
if (@inputParam = 'FALSE')
begin
set @itemStatus = 'A'
end
else
set @itemStatus = 'D'
SELECT * FROM Offices
WHERE
IdOffice = @IdOffice
AND (V.OffType NOT IN (
SELECT * FROM MiscOff
WHERE ItemStatus= @itemStatus)
)
Run Code Online (Sandbox Code Playgroud)
T-Sql不是我的母语,因此可能存在错误......