webForumDet fria alternativet

RegExp i MSSql

Databaser & SQLur Databashanterare & SQL

7 svar · 687 visningar · startad av Rob Tjotj

Medlem sedan okt. 200591 inlägg
Frågan#1

Hej igen!

Jag har lagrat telefonnummer mm i en tabell.
Nu vill jag söka men en del finns lagrade som 0123456789 och en del som ex. 0123-456 789.
Sökordet kan jag korrigera genom att använda RegExp så att jag bara får siffror.
Men hur hittar jag 0123456789 när det kan vara lagrat som 0123-45 67 89.
DVS. hur använder jag regExp på serversidan?

Tack på förhand
Robert

Medlem sedan juni 20014 290 inlägg
#2

Enklast, gör en Search/Replace på -, + och mellanslag.

Medlem sedan okt. 200591 inlägg
#3

GunnarD skrev:

Enklast, gör en Search/Replace på -, + och mellanslag.

Hur gör jag det på serversidan?
Ge ett exempel.

Medlem sedan mars 20007 896 inlägg
#4
select
    replace(
        replace(
            replace([Phone], '-', ''),
            '+', ''),
    ' ', '')
from
    ...

Fulkodat och klart. ;)

Medlem sedan okt. 200591 inlägg
#5

Sorry

Jag får det inte att fungera.
Jag vill ju ha det typ följande

select * from table where telefon = '0123456789'

Där telefon kan se ut som ex. 0123456789, 0123-456 789 eller 0123-45 67 89.
Jag vill alltså ha replace eller regexp på "telefon".

Medlem sedan juni 200032 969 inlägg
#6

Det är ju bara att applicera SPiNs exempel. Lägg in hela replace-uttrycket istället för bara fältnamnet.

Medlem sedan okt. 200591 inlägg
#7

Tack

Missade hakparanteserna. :p

Medlem sedan juni 200032 969 inlägg
#8

Hakparenteserna behövs inte.

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