Avatar billede annsofie85 Nybegynder
24. januar 2012 - 09:43 Der er 6 kommentarer og
1 løsning

Få en del af en lang streng fra en kolonne

Jeg sidder og skal have en del af en lang streng ud fra en kolonne i en tabel. Hvordan gør jeg det uden at jeg får hele kolonnen? (Jeg bruger SQL Server 2005.)

Et eksempel på mit problem:
Jeg har en kolonne, Navn, som hedder AnnSofie Holm.
Jeg vil bare gerne have AnnSofie ud, hvordan gør jeg det?

Jeg har forsøgt med forskellige jokertegn f.eks.:

SELECT Fornavn
FROM dbo.Patientdata
WHERE Fornavn LIKE 'Ann_%';
Avatar billede ramad Praktikant
24. januar 2012 - 10:03 #1
Du kan gøre noget ala dette (og så pynte det til din løsning selvfølgelig :)

DECLARE @ColA nvarchar(max)
DECLARE @PartOfColA nvarchar(max)
SET @ColA = 'Jeg har en kolonne, Navn, som hedder AnnSofie Holm.'
SET @PartOfColA = 'AnnSofie'

SELECT SUBSTRING(@ColA, CharIndex(@PartOfColA, @ColA), LEN(@PartOfColA))
Avatar billede annsofie85 Nybegynder
24. januar 2012 - 10:19 #2
Problemet er bare at jeg ikke ved hvad der står i strengen. Ved bare hvad der står foran de ord/tal jeg har brug for.

Jeg har et eksempel her:

Id="xxxx"

Jeg ved ikke hvad tallene er (på pladsen xxxx), men jeg ved hvor mange der er og hvad der står foran (Id=).
Avatar billede ramad Praktikant
24. januar 2012 - 13:03 #4
DECLARE @ColA nvarchar(max)
DECLARE @Id nvarchar(max)
DECLARE @Length int
SET @ColA = 'Lorem ipsum Id="xxxx" lorem ipsum'
SET @Id = 'Id="' -- Det kendte før xxxx
SET @Length = 4 -- Den kendte længde på xxxx

SELECT CharIndex(@Id, @ColA) + LEN(@Id)
SELECT SUBSTRING(@ColA, CharIndex(@Id, @ColA) + LEN(@Id), @Length)
Avatar billede ramad Praktikant
24. januar 2012 - 13:04 #5
Der kom lige en CharIndex for meget med...

DECLARE @ColA nvarchar(max)
DECLARE @Id nvarchar(max)
DECLARE @Length int
SET @ColA = 'Lorem ipsum Id="xxxx" lorem ipsum'
SET @Id = 'Id="'
SET @Length = 4

SELECT SUBSTRING(@ColA, CharIndex(@Id, @ColA) + LEN(@Id), @Length)
Avatar billede annsofie85 Nybegynder
24. januar 2012 - 13:30 #6
Tak ramad - det virkede!
Smid lige et svar
Avatar billede ramad Praktikant
24. januar 2012 - 13:39 #7
Svar smidt :)
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