答案 0 :(得分:2)
SQL Server中没有内置的内容,但您可以使用ISNULL
,例如:
DECLARE @value1 AS VARCHAR(10) = 'a'
DECLARE @value2 AS VARCHAR(10) = NULL
DECLARE @nullreplace AS VARCHAR(10) = ''
SELECT CASE
WHEN ISNULL(@value1,@nullreplace) = ISNULL(@value2,@nullreplace) THEN 1
ELSE 0
END
问题在于你需要选择一个不会出现在你比较的值中的NULL替换值。
答案 1 :(得分:1)
如前所述,没有直接的运营商。你可能会这样做 - 替换
WHERE field <=> 'a'
与
WHERE IsEqual(field,'a')
,其中IsEqual是用户函数......
CREATE FUNCTION IsEqual( A VARCHAR(128), B VARCHAR(128) ) RETURNS BOOL
BEGIN
IF (( A = B ) IS NULL) THEN
RETURN ((A IS NULL) AND (B IS NULL));
ELSE
RETURN (A = B);
END IF;
END