Avatar billede a_c Nybegynder
11. januar 2002 - 12:08 Der er 7 kommentarer og
1 løsning

Hvordan får jeg fat i sidste ord i en streng

Jeg har en streng af en eller anden længde.
Hvordan får jeg fat i sidste ord i strengen.
Avatar billede erikjacobsen Ekspert
11. januar 2002 - 12:37 #1
Mener du at det skal ske i MS_SQL ? Ellers flyt spørgsmålet over i den
relevante kategori?
Avatar billede a_c Nybegynder
11. januar 2002 - 12:41 #2
Hey Erik er tilbage.
:o)
Ja det mener jeg. Ligesom hvis jeg ville sige
select SUBSTRING(name,1,CHARINDEX(\' \',name)) from difmedarb , ville returnere det første ord i mit name felt fra min difmedarb tabel.
Men den skal bare returnere det sidste ord.
Det må da også være muligt?
Avatar billede erikjacobsen Ekspert
11. januar 2002 - 12:44 #3
Nej, jeg er ikke tilbage.

Ok, så er det relevant nok - måske du egentlig kunne have givet det eksempel
med det samme. Jeg kan gøre det i MySql, men det hedder sikkert noget andet hos
dig.
Avatar billede a_c Nybegynder
11. januar 2002 - 12:49 #4
Ja det har du nok ret i.
Jeg vil meget gerne se hvordan det kunne gøres i MySQL. Måske jeg kan overføre det til MSSQL.
Så hvis du gider at smide det op så ville jeg være glad.
:o)
a_c
Avatar billede tmceu Praktikant
11. januar 2002 - 13:29 #5
Den er ikke køn, men den virker

select right(Felt, patindex(\'% %\', reverse(Felt)))

Kan eks. testes med denne, som gerne skulle returnere bbb

select right(\'aaaaa bbb\', patindex(\'% %\', reverse(\'aaaaa bbb\')))

Den vender først stregen
Finder første mellemrum
Bruger så right til at finde x positioner bagfra
Avatar billede a_c Nybegynder
11. januar 2002 - 13:42 #6
tmceu >> ja jeg havde selv leget lidt med reverse.
Men jeg kunne ikke få det til at funke.
Når jeg kører din query så returnerer den 2 records (antallet af records i min test DB) med en tom streng. Jeg får ikke det sidste ord med tilbage. Hvad kan være galt?
a_c
Avatar billede tmceu Praktikant
11. januar 2002 - 13:46 #7
Det kan skyldes eks. skyldes at du bruger Char i stedet for Varchar. Med Char felter vil der ofte være ekstra blanke før og/eller efter dit indhold.

Denne lille modificerede version skulle gerne gøre det.

select right(RTrim(\'aaaaa bbb  \'), (patindex(\'% %\', reverse(RTrim(\'aaaaa bbb  \')))-1))

Havde i øvrigt glemt -1, så du fike en blank med også :-)
Avatar billede a_c Nybegynder
11. januar 2002 - 13:51 #8
Yes sir.
Takker.

a_c
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester