Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

porównywanie dwóch ciągów w SQL Server

W SQL Server nie ma funkcji bezpośredniego porównywania ciągów

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

Notatki

  • możesz zawinąć to za pomocą UDF za pomocą CREATE FUNCTION itp.
  • możesz potrzebować obsługi NULL (w moim kodzie powyżej, każdy NULL zgłosi 1)
  • str1 i str2 będą nazwami kolumn lub @zmiennymi



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL NIE MA prawdopodobnie problemów z wydajnością

  2. Generuj skrypt dla schematu i danych

  3. Instrukcja aktualizacji dynamicznej ze zmiennymi nazwami kolumn

  4. Jak uzyskać dane wyjściowe eksportu w rzeczywistym formacie CSV w SQL Server Management Studio?

  5. Używanie dynamicznie nazwanej tabeli w zadaniu przepływu danych SSIS