Databas: SQL Server 7.0 Hejsan Micke! Hittade en intressant information om Collations:Skilja på W och V i utsökningar
Konfiguration:
- Locale ID = 1053
- Character Set = 2, cp850
- Sort Order = 60, scand_nocase
- Code Page 850 (Multilingual) character set.
- Case-insensitive Scandinavian dictionary sort order, without case preference for collating purposes. Uses the Code Page 850 character set.
Fältet "pid" varchar(7)
Jag har ett problem med utsökningar innehållande W och/eller V
SELECT pid FROM person WHERE pid = 'P999AWI'
(fältet pid är unikt och kan inte innehålla dubletter)
Har jag en post med "P999AWI" returneras den såklart, men har jag en post med "P999AVI" så returneras den.
Har jag två poster "P999AWI" och "P999AVI" returneras båda posterna
Hur skall jag göra för att kunna särskilja W och V så att jag kan komma åt unika posterna?Sv: Skilja på W och V i utsökningar
Har inte din miljö tillgänglig eller vilka prestandakrav du har, men du kan prova att konvertera till varbinary..
SELECT *
FROM Table
WHERE CONVERT(varbinary(100), Field) = CONVERT(varbinary(100), Value)
Den kommer nog att skilja på stor och liten bokstav, men det fixar du med UPPER() eller LOWER()..
MickeSv: Skilja på W och V i utsökningar
Tackar!
Det löste problemet perfekt.
Jag hade faktiskt hittat en lösning själv, som klarar upper/lower problemet.
Bytte fälttyp från varchar(7) till nvarchar(14) då funkar det perfekt, nackdelen är ju att fältet tar upp dubbelt så mycket utrymme, men det är inga gigantiska mängder data jag har i detta fallet.
(Så det blev två "lösningar" på detta problem) =)Sv: Skilja på W och V i utsökningar
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_da_6ttf.asp
Vet inte om det finns någon collation som skiljer på v och w. Men det borde det finnas.
Här har du information om att byta collation för en kolumn:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_da_6ttf.asp