Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come specificare le regole di confronto in una query in SQL Server (T-SQL)

Nei sistemi di database, le regole di confronto determinano il modo in cui i dati vengono ordinati e confrontati in un database. Ad esempio, quando esegui una query utilizzando ORDER BY clausola, confronto determina se le lettere maiuscole e minuscole vengono trattate allo stesso modo.

In SQL Server, le regole di confronto sono specificate a livello di server, di database e di colonna.

Le regole di confronto possono essere applicate anche a un'espressione di stringa di caratteri per applicare un cast di regole di confronto. Ad esempio, puoi utilizzare COLLATE clausola in un T-SQL SELECT istruzione per specificare le regole di confronto da utilizzare. In questo modo:

USE Music;
SELECT ArtistId, ArtistName
FROM Artists
ORDER BY ArtistName COLLATE Latin1_General_CI_AI;

Tale confronto utilizza CI per la distinzione tra maiuscole e minuscole e AI per insensibili all'accento.

Potremmo cambiarlo in CS per la distinzione tra maiuscole e minuscole e AS per l'accento sensibile e i risultati della query possono essere ordinati in modo diverso (a seconda dei dati):

USE Music;
SELECT ArtistId, ArtistName
FROM Artists
ORDER BY ArtistName COLLATE Latin1_General_CS_AS;

Quindi, ciò ti consente di ignorare le regole di confronto applicate a livello di database o colonna durante l'esecuzione di una query.

Puoi utilizzare T-SQL per controllare le regole di confronto del server, del database e di una colonna.