在T-SQL中比较空字符串的最快方法是什么?

时间:2012-09-20 22:15:03

标签: sql-server tsql string-comparison string

我在SQL Server环境中工作,对存储过程很重视,其中许多过程使用0和''而不是Null来表示没有传递有意义的参数值。

这些参数经常出现在WHERE子句中。通常的模式类似于

WHERE  ISNULL(SomeField,'') = 
    CASE @SomeParameter 
        WHEN ''  THEN ISNULL(SomeField,'')
        ELSE @SomeParameter
    END

由于各种原因,对proc进行更改要比对调用它的代码进行更改要容易得多。因此,假设调用代码将为空参数传递空字符串,那么比较空字符串的最快方法是什么?

我想到的一些方法:

@SomeParameter = ''

NULLIF(@SomeParameter,'') IS NULL

LEN(@SomeParameter) = 0

我还考虑过在proc中提前检查参数,如果它等于'',则将其设置为NULL,并在实际的WHERE子句中进行@SomeParameter IS NULL测试。

还有其他方法吗?什么是最快的?

非常感谢。

0 个答案:

没有答案