Ich mache ein paar Tests mit SQL Server-Datentypen. Ich habe den folgenden Code:Wie vergleicht SQL Server zwei NCHAR (1) Typ?
IF CONVERT(NCHAR(1), '啊') > CONVERT(NCHAR(1), '哎')
SELECT '>';
ELSE
SELECT '<';
SELECT '<' WHERE CONVERT(NCHAR(1), '啊') < CONVERT(NCHAR(1), '哎');
SELECT '>' WHERE CONVERT(NCHAR(1), '啊') > CONVERT(NCHAR(1), '哎');
Wenn er ausgeführt wird Ich habe:
Wenn ich den Bediener> zu < in der IF
Anweisung ändern, und führen Sie wieder, ich habe:
Das Ergebnis scheint ein wenig verwirrend für mich. Kann mir bitte jemand erklären helfen?
BTW, ich bin auf SQL Server 2016 SP1.
Sie fehlen das Präfix N vor Ihren Zeichenfolgenliteralen –
@MartinSmith, Ja Martin, ich weiß, ich möchte nur wissen, wie SQL Server mit diesem Fall umgehen wird. –
Es wird alles umwandeln? höchstwahrscheinlich. Abhängig von Ihrer Standard-Codepage und wenn sie diese Zeichen enthält. –