|
| Udvælgelse betinget af første tegn? Fra : Knud Berggreen |
Dato : 12-11-02 19:02 |
|
Jeg skal lave et udtræk hvor første tegn _ikke_ må være et bogstav...
F.eks. indeholder databasen en masse titler hvor første tegn kan være
bogstaver, tal eller symboler (#$¤%)
Det vil sige at min søgning skal finde alle forekomster hvor første
tegn ikke er mellem 'A' og 'Z' samt 'Æ', 'Ø' og 'Å'
Jeg skal formodentlig bruge LIKE, men hvordan skal jeg skrue den
sammen?
Mvh
Knud
| |
Jakob Andersen (12-11-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 12-11-02 19:32 |
|
"Knud Berggreen" <knud@berggreen.invalid> wrote
> Det vil sige at min søgning skal finde alle forekomster hvor første
> tegn ikke er mellem 'A' og 'Z' samt 'Æ', 'Ø' og 'Å'
> Jeg skal formodentlig bruge LIKE, men hvordan skal jeg skrue den
> sammen?
Dit spørgsmål har egentlig ikke så meget med ASP at gøre, det er afhængig af
din database, og da du ikke fortæller hvilken database du bruger er det lidt
svært at hjælpe dig.
I mySQL kan du f.eks. gøre sådan her;
SELECT <fieldlist> FROM <table> WHERE NOT (<field> REGEXP "^[a-zA-Z]");
--
Jakob Andersen
| |
Jakob Andersen (12-11-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 12-11-02 20:09 |
|
"Jakob Andersen" <jakob@effectus.dk> wrote
> I mySQL kan du f.eks. gøre sådan her;
>
> SELECT <fieldlist> FROM <table>
> WHERE NOT (<field> REGEXP "^[a-zA-Z]");
Eller hvis databasen ikke understøtter en slags pattern matching kan du
selvfølgelig gøre noget ala dette:
SELECT <fieldlist> FROM <table> WHERE LOWER(LEFT(<field>,1)) NOT IN
('a','b','c',..................,'z')
--
Jakob Andersen
| |
Knud Berggreen (12-11-2002)
| Kommentar Fra : Knud Berggreen |
Dato : 12-11-02 23:46 |
|
On Tue, 12 Nov 2002 20:09:09 +0100, "Jakob Andersen"
<jakob@effectus.dk> wrote:
>Eller hvis databasen ikke understøtter en slags pattern matching kan du
>selvfølgelig gøre noget ala dette:
Det er en Access base. Jeg ved ikke hvordfan man kalder en .dbf base.
Det ville jeg ellers meget hellere da de ikke fylder en pind i
forhold.
>SELECT <fieldlist> FROM <table> WHERE LOWER(LEFT(<field>,1)) NOT IN
>('a','b','c',..................,'z')
Den understøtter ikke LOWER og UPPER, men det andet virker. Tak for
hjælpen.
/Knud
| |
Jens Gyldenkærne Cla~ (12-11-2002)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 12-11-02 23:04 |
|
Jakob Andersen skrev:
> Eller hvis databasen ikke understøtter en slags pattern
> matching kan du selvfølgelig gøre noget ala dette:
>
> SELECT <fieldlist> FROM <table> WHERE LOWER(LEFT(<field>,1))
> NOT IN ('a','b','c',..................,'z')
Man kan også bare udnytte at bogstaverne står lige efter hinanden i
sorteringsrækkefølgen:
SELECT <felter> FROM <tabel> WHERE NOT LOWER(LEFT(<felt>, 1))
BETWEEN 'a' and 'z'
(her tages ikke højde for æ, ø og å, ligesom accentuerede tegn alt
afhængig af databaseindstillingerne kan komme med i
resultatsættet).
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.
| |
|
|