SQL Server:检查数据(如果可用),否则使用IS NULL

时间:2017-01-19 01:53:03

标签: sql-server stored-procedures

我有一个存储过程,我需要根据5个值来提取数据,但有时其中一个值为空。虽然列不是空的但是NULL,所以我需要它以某种方式检查它是否为NULL。

这是我的代码:

SELECT UVC 
FROM [Blackbook].[VehicleUvc]  
WHERE Year = @Year 
  AND Make = @Make 
  AND Model = @Model 
  AND Series = @Series 
  AND Style = @Style

所以@Series有时候是一个空字符串,因此我需要它来检查它是否为空时是否为空,否则它将执行它当前正在做的事情,并根据它查找数据正常值。那是我在代码中可以做的事情,还是在声明变量时我必须要做的事情?

类似的东西:

IF (@Series = '') { Series IS NULL } ELSE { Series = @Series }

1 个答案:

答案 0 :(得分:1)

您可以在表格列上使用ISNULL,如果它为空,则将其视为''所以,如果变量是''当列为空时,它们会匹配:

SELECT UVC 
FROM [Blackbook].[VehicleUvc] 
WHERE ISNULL(Year, '') = @Year 
    AND ISNULL(Make, '') = @Make 
    AND ISNULL(Model, '') = @Model 
    AND ISNULL(Series, '') = @Series 
    AND ISNULL(Style, '') = @Style