比较SQL Server中的两个字符串

时间:2011-07-08 11:31:13

标签: sql sql-server-2008 string-comparison

有没有办法比较SQL Server 2008存储过程中的两个字符串,如下所示?

int returnval = STRCMP(str1, str2)
    如果字符串相同,
  • 返回0
  • 如果根据当前排序顺序第一个参数小于第二个参数,则
  • 返回-1。
  • 否则返回1.

上面的方法我在MySQL中找到但不在SQL Server中找到。

1 个答案:

答案 0 :(得分:30)

SQL Server中没有直接字符串比较功能

CASE
  WHEN str1 = str2 THEN 0
  WHEN str1 < str2 THEN -1
  WHEN str1 > str2 THEN 1
  ELSE NULL --one of the strings is NULL so won't compare (added on edit)
END

注释

  • 您可以使用CREATE FUNCTION等
  • 通过UDF包装它
  • 您可能需要NULL处理(在我上面的代码中,任何NULL都会报告1)
  • str1和str2将是列名或@variables