---
title: "Skilja på W och V i utsökningar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/77035-skilja-på-w-och-v-i-utsökningar"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ulfe"
published: "2003-05-15T10:20:52.000Z"
updated: "2003-05-15T12:42:10.000Z"
replies: 6
views: 380
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/77035-skilja-på-w-och-v-i-utsökningar"
---

# Skilja på W och V i utsökningar

## #1 — ulfe, 2003-05-15T10:20Z

Databas: SQL Server 7.0
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.

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?

Permalänk: https://www.webforum.nu/p/77035

## #2 — LarsG, 2003-05-15T10:24Z

Kanske

```
SELECT pid FROM person WHERE cast(pid as varbinary(10)) = 'P999AWI'
```

med lämplig längd

Permalänk: https://www.webforum.nu/p/1049865

## #3 — ulfe, 2003-05-15T10:27Z

LarsG:
Tyvärr det ger samma resultat, jag får ut båda posterna med den sökningen.

Permalänk: https://www.webforum.nu/p/1049870

## #4 — LarsG, 2003-05-15T11:21Z

jaha. En mindre bra lösning är att du gör en extra kontroll i applikationen men just nu ser jag inget alternativ om det inte fungerade med binary.

Permalänk: https://www.webforum.nu/p/1049899

## #5 — ulfe, 2003-05-15T11:57Z

Verkar inte vara så att SQL 7 stöder separationen av W och V (V=W) när man egentligen vill att det skall vara (V\<W)

Permalänk: https://www.webforum.nu/p/1049918

## #6 — LarsG, 2003-05-15T12:24Z

I svenska är det ingen skillnad mellan V och W så jag tycker att beteendet är korrekt med den sorteringsordning som du har. I version 8 (sql 2000) finns det möjligheter att styra detta i SQL-frågorna, men i version 7 så måste man byta sorteringsordning vilket inte är en enkel operation.

Permalänk: https://www.webforum.nu/p/1049940

## #7 — ulfe, 2003-05-15T12:42Z

Har fått en lösning och testat fram en annan lösning:

SELECT     pid
FROM         person
WHERE     (CONVERT(varbinary(100), pid) = CONVERT(varbinary(100), 'p999awi'))

Denna lösning måste man sedan modda med UPPER och LOWER eftersom den är case-sensitive

Jag hittade 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) =)

Permalänk: https://www.webforum.nu/p/1049960

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/77035-skilja-på-w-och-v-i-utsökningar
