比较SQL Server中的两个字符串

Mah*_*der 12 sql string-comparison sql-server-2008

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

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

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

gbn*_*gbn 33

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
Run Code Online (Sandbox Code Playgroud)

笔记

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