在 SQL Server 中比较两个字符串

问题描述 投票:0回答:2

有什么方法可以比较 SQL Server 2008 存储过程中的两个字符串,如下所示?

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

以上方法我在 MySQL 中找到,但在 SQL Server 中没有。

sql sql-server-2008 string-comparison
2个回答
43
投票

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
END

备注:

  • 您可以使用
    CREATE FUNCTION
    等通过 UDF 包装它。
  • 如果比较的字符串之一为 NULL,则可能需要 NULL 处理
  • str1
    str2
    将是列名称或 @variables

0
投票

我用这个:

选择 IIF(str1 = str2, 0, -1)

© www.soinside.com 2019 - 2024. All rights reserved.