webForumDet fria alternativet

ersätta tomt värde i fält

Databaser & SQL

10 svar · 286 visningar · startad av ptype

Medlem sedan juni 2002151 inlägg
Frågan#1

Hej. Jag har en fråga där bl.a. ett fält strPicture (sökväg till en bild) hämtas. Jag skulle vilja att om detta fält är tomt så ska för alla dessa poster istället "bildsaknas.gif" returneras. Går det att göra med SQL eller måste jag loopa igenom set:et själv efteråt?

mvh
ptype

Medlem sedan dec. 20003 887 inlägg
#2

Tja... du kan väl sätta ett defaultvärde på kolumnen?

Medlem sedan juni 2002151 inlägg
#3

hjälper det när jag hämtar värden med tomma fält då, och inte bara vid insättning? För jag vet att jag kommer att ha tomma värden i databasen (vet att det finns poster som satts in med "")

Medlem sedan dec. 200012 464 inlägg
#4

Det går med SQL. Vilken SQL du behöver beror på vilken DBMS du använder.

Medlem sedan juni 2002151 inlägg
#5

MS SQL Server kör jag.

Hur gör jag då LarsG? ;)

Medlem sedan dec. 200012 464 inlägg
#6

Då kan man använda funktionen coalesce

select coalesce(strPicture,'bildSaknas.gif') from members

om det ligger null i kolumnen strPicture så får man värdet 'bildSaknas.gif' annars så blir det kolumnvärdet.

Medlem sedan juni 2002151 inlägg
#7

tack!! :e :birp :bire :h

Medlem sedan dec. 20003 887 inlägg
#8

coalesce :e

Där har man ju missat något väldigt användbart...

Kanon LarsG!

Medlem sedan juni 2002151 inlägg
#9

hmm, men det verkar bara funka om man har NULL där. Nu har jag en tom sträng: ""

Hur gör man då?

Medlem sedan dec. 200012 464 inlägg
#10
select case when strPicture = '' or strPicture is null then
  'bildSaknas.gif' else strPicture end from pictures
Medlem sedan juni 2002151 inlägg
#11

tack igen!

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)