Sammanställning

Sorteringssekvenser används av SQLite vid jämförelse av TEXT-värden för att fastställa ordning och likhet. Du kan ange vilken sortering som ska användas när du skapar kolumner eller per åtgärd i SQL-frågor. SQLite innehåller tre sorteringssekvenser som standard.

Sammanställning Beskrivning
RTRIM Ignorerar avslutande blanksteg
Ingen skiftlägeskänslighet Skiftlägesokänsligt för ASCII-tecken A-Z
BINÄR Skiftlägeskänsligt. Jämför byte direkt

Anpassad sortering

Du kan också definiera egna sorteringssekvenser eller åsidosätta de inbyggda med hjälp av CreateCollation. I följande exempel visas åsidosättande av NOCASE-sortering för att stödja Unicode-tecken. Den fullständiga exempelkoden är tillgänglig på GitHub.

connection.CreateCollation("NOCASE", (x, y) => string.Compare(x, y, ignoreCase: true));

var queryCommand = connection.CreateCommand();
queryCommand.CommandText =
@"
    SELECT count()
    FROM greek_letter
    WHERE value = 'λ' COLLATE NOCASE
";
var oCount = queryCommand.ExecuteScalar();
var count = (oCount is not null) ? (int)oCount : -1;

Likeoperator

LIKE-operatorn i SQLite respekterar inte sortering. Standardimplementeringen har samma semantik som NOCASE-sortering. Det är bara skiftlägesokänsligt för ASCII-tecknen A till Z.

Du kan enkelt göra LIKE-operatorn skiftlägeskänslig med hjälp av följande pragmainstruktion:

PRAGMA case_sensitive_like = 1

Mer information om hur du åsidosätter implementeringen av LIKE-operatorn finns i Användardefinierade funktioner .

Se även