我在使用SP的SSRS中有一个@AgentGroup
参数。SQL如何包含和排除空值在where子句中
我想要做的是如果参数传递一个值PREPB_STRSTR,NULL
它也会显示空值。我想在我的where子句中增加一个OR @AgentGroup is null
,但如果参数只传递一个值PREPB_STRSTR
它会显示空数据。
DECLARE @DateTo date = '3/21/2017',
@DateFrom date = '3/21/2017',
@VHGroup nvarchar(max) = 'PREPB_STRSTR,NULL'
SELECT
[AgentIRACGroup]
,[CallOutCallID]
,[CallOutDateTime]
,[OutboundDuration]
,[CallOutNumber]
,[AgentName]
,[CallOutAgentID]
,[AgentGroup]
,[Outcome]
,[TalkTime]
FROM [AgentStatisticsEOD].[dbo].[IRAC_Data]
WHERE CONVERT(Date,[SCBCallDateTimeRequest]) BETWEEN @DateFrom AND @DateTo
AND [AgentGroup] collate database_default in (SELECT value from dbo.FnSplit(@VHGroup,',')) OR [AgentGroup] is null
我的查询将始终显示为空[AgentGroup]
连@Agentgroup
不传递空值。
是不是只是用更高的优先级和w.r.t.问题要么?我的意思是你不想'AND([AgentGroup] ...或[AgentGroup]为空)'? –