MS SQL Server中是否有等效的< => MySQL中的运算符?

时间:2014-02-28 01:47:09

标签: sql-server equivalence

我刚刚阅读了这个问题,关于MySQL中的<=>

What is this operator <=> in MySQL?

SQL Server是否有相同的功能?

2 个答案:

答案 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