Stuk tekst bepalen

Status
Niet open voor verdere reacties.

patricw

Gebruiker
Lid geworden
27 mei 2009
Berichten
218
Allen,

Ik heb een tekst die er als volgt uit ziet:

550S060P_100P_28R_675 of 550S060P_50P_28R_675

Ik wil graag het eerste gedeelte hebben, dus 550S060P_100 of 550S060P_50.

Ik dacht dit te doen met :

Code:
CASE WHEN CHARINDEX('_', Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam) + 3) = 100
THEN CHARINDEX('_', Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam) + 3) ELSE CHARINDEX('_', Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam) + 2) END AS [Short spec met substraat]

Maar dit werkt niet, de CHARINDEX wordt niet herkend.

Iemand suggesties?

groet, Patric
 
charindex geeft een integer weer: de positie van een substring in een string

CHARINDEX('_', '550S060P_100P_28R_675') = 9
9+3 = 12 en dus nooit 100

Als ik de term Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam goed lees dan
- is de databasenaam: Stamtabel
- De schemanaam: SpecificatieEigenschap
- de tabel of view naam: Specificatie
- de veldnaam: Productnaam

Klopt dit?

In dat geval

Code:
declare @Lengte int

select @Lengte = charindex('_', Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam)
select substring(Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam, 1, @Lengte) + case when substring(Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam,@lengte +1, 3) = '100' then '100' else '50' end
 
Laatst bewerkt:
Dank voor je reactie, je hebt me op het goede spoor gezet. Ik doe het nu als volgt:

Code:
CASE WHEN RIGHT(Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam, CHARINDEX('_', 
                  Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam) + 3) LIKE N'%100P%' THEN LEFT(Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam, CHARINDEX('_', Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam) 
                  + 3) ELSE LEFT(Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam, CHARINDEX('_', Stamtabel.SpecificatieEigenschap.Specificatie.ProductNaam) + 2) END AS [Short spec met substraat]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan