сравнивая две строки в SQL Server - PullRequest
11 голосов
/ 08 июля 2011

Есть ли способ сравнить две строки в хранимой процедуре SQL Server 2008, как показано ниже?

int returnval = STRCMP(str1, str2)
  • возвращает 0, если строки совпадают
  • возвращает -1, еслипервый аргумент меньше второго в соответствии с текущим порядком сортировки.
  • в противном случае возвращает 1.

Выше метод, который я нахожу в MySQL, но не в SQL Server.

1 Ответ

31 голосов
/ 08 июля 2011

В 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

Примечания

  • Вы можете обернуть это через UDF с помощью CREATE FUNCTION и т. Д.может потребоваться обработка NULL (в моем коде выше любой NULL будет сообщать 1)
  • str1 и str2 будут именами столбцов или @ variable
...