use*_*502 40 sql parameters null stored-procedures sql-server-2008
我知道如何检查一个参数是否为null但我不知道如何检查它是否为空...我有这些参数,我想检查以前的参数是空的还是null然后设置如下
ALTER PROCEDURE [dbo].[GetSummary]
@PreviousStartDate NVARCHAR(50) ,
@PreviousEndDate NVARCHAR(50) ,
@CurrentStartDate NVARCHAR(50) ,
@CurrentEndDate NVARCHAR(50)
AS
BEGIN
IF(@PreviousStartDate IS NULL OR EMPTY)
SET @PreviousStartdate = '01/01/2010' for example..
Run Code Online (Sandbox Code Playgroud)
我很感激你的帮助.
Rex*_*ler 69
我有时会像这样使用NULLIF ......
IF NULLIF(@PreviousStartDate, '') IS NULL
Run Code Online (Sandbox Code Playgroud)
可能没有理由比@Oded和@bluefeet建议的方式更好,只是风格偏好.
@ danihp的方法真的很酷,但是当我想的是空的或空的时候,我疲惫的老脑子不会去COALESCE :-)
Ode*_*ded 33
这是一般模式:
IF(@PreviousStartDate IS NULL OR @PreviousStartDate = '')
Run Code Online (Sandbox Code Playgroud)
'' 是SQL Server中的空字符串.
dan*_*era 11
我用coalesce:
IF ( COALESCE( @PreviousStartDate, '' ) = '' ) ...
Run Code Online (Sandbox Code Playgroud)
您可以使用:
IF(@PreviousStartDate IS NULL OR @PreviousStartDate = '')
Run Code Online (Sandbox Code Playgroud)