webForumDet fria alternativet

Apostrofer runt numeriska värden?

6 svar · 946 visningar · startad av Peeer

PeeerMedlem sedan mars 20025 907 inlägg
#1

"DELETE FROM tidning WHERE tidnnr='1096'" är helt korrekt SQL, fast tidnnr är numerisk.

Är det verkligen så? Jag har alltid trott att runt numeriska värden så ska det inte vara några apostrofer, men jag kanske har fel?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Inga apostrofer kring numeriska värden är det som gäller enligt standard.

@ndersMedlem sedan juni 200032 969 inlägg
#3

Det beror lite grann på. Råkar det vara ett numeriskt värde som lagrats i en varchar/text-kolumn i tabellen, så ska det vara apostrofer runt. (Men det kanske inte behöver vara det då?)

Jag låter alltid fälttypen bestämma om jag ska använda apostrofer runt eller inte.

Är fälten av taltyp skall man inte ha apostrofer runt värdena, även om man i vissa fall kan (om man använder SQL Server till exempel).

Mvh

PeeerMedlem sedan mars 20025 907 inlägg
#4

Ok, så påståendet att apostrofer runt numeriska värden som ska jämföras med en numerisk fälttyp skulle vara korrekt SQL är alltså felaktig? Är detta korrekt uppfattat?

Mvh

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Svar ja.

PeeerMedlem sedan mars 20025 907 inlägg
#6

Tack!

aasahMedlem sedan mars 20034 471 inlägg
#7

Dessutom: '1096' < '9' för '1' kommer före '9' på samma sätt som 'a' kommer före 'i'. Medan, givetvis, 9 < 1096. Det spelar alltså stor roll vid jämförelse.

131 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)