Archief - Geneste replace en case

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

blub

Legacy Member
Hallo

SQL zit al ver bij mij ondertussen en ik heb nu een constructie die wel doet wat ik wil, maar deze is volgens mij ook allesbehalve performant en deftig uitziend.

Het is een deel van een query die ik laat lopen.
Het is een query die mensen uit de database haalt en afhankelijk van hun taal, de aanspreking in de query verandert.

Code:
SELECT DISTINCT   
       c.[CODANCL] as 'CLIENT CODE'
		  
	  ,replace(replace(a.[CODCP5], 'nl-BE', 'NL'), 'fr-BE','FR') as 'Language'
	  ,case when a.[CODCP5] <> 'fr-BE'
	   then replace (replace(replace(replace(replace(replace(replace(replace(d.[DSAPPE],'Mrs', 'Mevrouw'), 'Mr',  'De Heer' ), 'Miss', 'Juffrouw'),
	  'Parent of', 'Ouders van'),'Sister', 'E.Z.'),'Empty',''), 'Priest', 'E.H.'), 'Brother', 'E.B.') 
	  else replace (replace(replace(replace(replace(replace(replace(replace(d.[DSAPPE],'Mrs', 'Madamme'), 'Mr', ' Monsieur'), 'Miss', 'Mademoiselle'),
	  'Parent of', 'Parents de'),'Sister', 'Soeur'),'Empty',''), 'Priest', 'Père'), 'Brother', 'Frère')
	  end AS 'Salutation Address'

De DB bevat engelse aansprekingen en deze zouden moeten omgezet worden naar NL of FR in de query zodat deze gegevens direct correct staan.
Is er een andere/snellere manier om dit te doen?

blub

Legacy Member
adrianhates zei:
ja, het gewoon mappen in je programmeertaal? :p

Dat is helaas niet mogelijk, daar kan ik niets aan wijzigen..
Ik moet die data gebruiken uit de DB

dJeez

Legacy Member
Err... Maak toch gewoon een tabel aan waar je de aansprekingen mapt van "origineel" naar "gewenst", en haal ze op die manier op via een join. Basis SQL, zonder replace rommel queries...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan