Hej! Anders, Nej jag vet att värdet inte är tal. Därför är är kolumnerna satta till nvarchar och inte int. Anders, Du har helt rätt. När jag ställer frågan på det viset får jag inget felmeddelande men jag får inte heller något returnerat värde då databasen innehåller blanktecken i fälten. Hur får jag frågan att ignorera dessa?? Hej igen, Om du söker på '%123' så kommer du även att hitta till exempel 74123 och 9123.Syntax Error
Jag får ett felmeddelande som jag inte förstår. Alla kolumnerna i tabellen är nvarchar ändå får jag ett meddelande som säger att det inte kan omvandlas till int.
"Syntax error converting the nvarchar value ' 64690-2' to a column of data type int."
Hur gör jag för att komma runt detta??Sv: Syntax Error
Ditt värde är ju inte något tal, det är ju en text! Vad vill du det skall omvandlas till? Hade du tänkt att det skall göras någon beräkning då det omvandlas? Eller skall bara strecket plockas bort? Vad vill du åstadkomma?
Som det är nu är det omöjligt att omvandla eftersom det inte är något tal. Det är samma pricip som att texten 'VOLVO' inte kan omvadlas till något tal.
// JohanSv:Syntax Error
Det är en vanlig select sats och jag vill bara returnera ett värde
Satsen ser ut så här:
Select * from BOOM where artikelnr =12345Sv: Syntax Error
Men om nu alla kolumnerna är nvarchar så kan du inte använda en jämförelse som byger på tal, vilket du gör med
WHERE artikelnr = 12345
Om nu således artikelnr är nvarchar precis som överiga kolumner (och i enlighet med vad du skriver) så måste även din jämförelse var textbaserad:
WHERE artikelnr = '12345'
// JohanSv:Syntax Error
Sv: Syntax Error
Då är det läge att använda LIKE operatorn (see T-SQL hjälpen för fullständig info). Lite exempel:
WHERE artikelnr LIKE '%12345'
returnerar alla värden som slutar på 12345 oavsett om det är noll, ett eller flera tecken framför.
WHERE artikelnr LIKE '_12345'
returnerar alla värden som slutar på 12345 med exakt ett tecken framför.
WHERE artikelnr LIKE '[0-9]a'
returnerar alla värden som börjar med en siffra följt av ett a, ex. 1a eller 2a osv.
Det finns mängder med varianter, så du får själv kolla hjälpen för att hitta vad som är möjligt och för att få till en variant som passar dig.
// JohanSv: Syntax Error
Ifall du vill matcha artikelnumret exakt så kan du använda TRIM eller LTRIM för att ta bort mellanslagen:
WHERE TRIM(artikelnr) = '12345'
eller
WHERE LTRIM(artikelnr) = '12345'