当我运行程序(下面)时,"执行程序"弹出框请求一个我期望的值。如果我完成了值或传递了一个空值,它将按预期运行。
我所追求的是,如果我没有选择传递空值或将值字段留空,则查询将针对所有字段运行,实际上忽略了该行:
Where userid = @userID
希望这是有道理的,这可能吗?
这是我执行的查询(我没有创建):
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Codename]
@userID NVARCHAR(MAX)
AS
EXECUTE dbo.ProcedureToRun @userID
RETURN 0
它执行的查询(过程中有几种类型的查询)
SELECT DISTINCT(Screen), COUNT(*) AS Visits
FROM HitCounters
WHERE userid = @userID
AND HitDate > DATEADD(day, -30, GETDATE())
GROUP BY Screen
谢谢,
答案 0 :(得分:0)
将此条件添加到where子句julia> Meta.quot(:foo)
:(:foo)
julia> Expr(:quote, :foo)
:(:foo)
@userID is null
答案 1 :(得分:0)
如果@userID
为空
Select distinct(Screen), count(*) AS Visits
From HitCounters
Where (
userid = @userID OR
@userID IS NULL
)
AND HitDate > DATEADD(day, -30, GETDATE())
Group By Screen