Select mit Datenentfremdung

08/04/2009 - 09:36 von onny | Report spam
Hallo zusammen,

ich möchte innerhalb einer select Abfrage in einem Feld gleichzeitig die
Daten entfremden um sie damit zu pseudonymisieren.

Der Wert ist z.B. ein varchar der im Inhalt jedoch nur Zahlen hat. Diese
Spalte möchte ich erst mit 3 multiplzieren und nach der Multiplikation sagen
das z.B. jede 3 durch ein x und jede 8 z.B. durch ein p. Leider weiß ich zwar
wie ich die Multiplikation mache, aber nicht wie ich die genannten Zahlen mit
den Buchstaben ersetze weil sie ja immer an anderen Stellen stehen.

Bis jetzt sieht die Abfrage ungefàhr so aus:

select
personalnummer * 3
from personaltabelle

dann wird mir z.B. aus 18377 dann 55131.
jetzt müßte aus der 3 noch ein x gemacht werden.
Leider weiß ich absolut nicht wie das gleichzeitig in der select gemacht
werden kann.

Gruß Kobe
 

Lesen sie die antworten

#1 GumbleManja
08/04/2009 - 11:44 | Warnen spam
SELECT id "okinal" ,id*3 "multipliziert",REPLACE(REPLACE(CAST(3*id AS
VARCHAR),'3','p'),'8','x') "verfremdet" from test
ergibt dann so etwas:
okinal multipliziert verfremdet
1 3 p
2 6 6
3 9 9
4 12 12
5 15 15
6 18 1x
7 21 21
8 24 24
9 27 27
10 30 p0
11 33 pp
12 36 p6
13 39 p9
14 42 42
15 45 45
16 48 4x


Viele Grüße
Peter

"onny" wrote:

Hallo zusammen,

ich möchte innerhalb einer select Abfrage in einem Feld gleichzeitig die
Daten entfremden um sie damit zu pseudonymisieren.

Der Wert ist z.B. ein varchar der im Inhalt jedoch nur Zahlen hat. Diese
Spalte möchte ich erst mit 3 multiplzieren und nach der Multiplikation sagen
das z.B. jede 3 durch ein x und jede 8 z.B. durch ein p. Leider weiß ich zwar
wie ich die Multiplikation mache, aber nicht wie ich die genannten Zahlen mit
den Buchstaben ersetze weil sie ja immer an anderen Stellen stehen.

Bis jetzt sieht die Abfrage ungefàhr so aus:

select
personalnummer * 3
from personaltabelle

dann wird mir z.B. aus 18377 dann 55131.
jetzt müßte aus der 3 noch ein x gemacht werden.
Leider weiß ich absolut nicht wie das gleichzeitig in der select gemacht
werden kann.

Gruß Kobe

Ähnliche fragen