Daten im View zusammenfassen

Liebe/-r Experte/-in,
ich habe folgende Frage:
Ich nutze eine oracle-DB und möchte dort einen View kreieren, der zwei Daten aus einer Tabelle in einem Feld zusammenführt.
Beispiel:
In der Tabelle „Anschrift“ existieren ca. 15.000 Datensätze und es gibt u.a. 2 Spalten „Name“ und „Vorname“, die mit Daten wie Müller, Meier, Schulze bzw. Max, Gerd oder Uli gefüllt sind.
Ich möchte nun in einem View auf diese Tabelle Name und Vorrname in einer Spalte „Gesamtname“ stehen haben. In diesen Datenfeldern soll dann z.B. „Müller, Max“ oder „Meier, Gerd“ oder „Schulze, Uli“ stehen.
Ich hoffe, ich habe mich verständlich ausgedrückt.
Mit welcher SQL-Syntax bekomme ich das hin?
Danke im Voraus.

Hallo,

letztlich ist eine VIEW nur ein Select-Statement, das als Sub-Select eingebunden wird. Daher würde hier vermutlich die Syntax zum verbinden (Concat) von zwei Spalten reichen, richtig?

Beispiel:
SELECT ‚hans‘ As Vorname, ‚mustermann‘ As Nachname FROM dual;

–>
'HAN 'MUSTERMAN


hans mustermann

Beispiel mit Verkettung:
SELECT ‚hans‘||’, '||‚mustermann‘ AS Ganzername FROM dual;

Viele Grüße
PilleSoft GmbH

hallo, das ist recht simpel:

select Name || „,“ || Vorname, Strasse … usw

LG kessie

Hallo,

ein

select name || ', ' || vorname from anschrift

sollte es tun.

Das ganze können sie natürlich auch in eine eigene View packen.

Wenn Sie dazu noch fragen haben lassen Sie es mich wissen.

Sonnige Grüße,
Lars Heller

Hi,

in MS SQL würdest du in der Viewdefinition einfach ein zusammengesetztes Feld erstellen:
create view VW_Anschrift as
select
*,
Name + ’ ’ + Vorname as Nachname_Vorname
from Anschrift

In Oracle-SQL dürfte es genauso gehen.

Gruß
Erich

Hier ein Beispiel:

create table testnamen (
name nvarchar2(50),
vorname nvarchar2(50));

insert into testnamen (name, vorname) values(‚Meier‘, ‚Hugo‘);
insert into testnamen (name, vorname) values(‚Schulze‘, ‚Rainer‘);
insert into testnamen (name, vorname) values(‚Hoffmeister‘, ‚Barbara‘);

commit;

create view v_namen ( gesamtname ) as
select name || ', ’ || vorname gesamtname
from testnamen;

select gesamtname from v_namen;

— um alles wieder loszuwerden View und Tabelle dropen

–drop view v_namen;
–drop table testnamen;

Meinst Du sowas:

select name||’, '||vorname as gesamtname from anschrift;

Bitte,
Tomh

Hallo Ptonka,

Du suchst die Verbindung von zwei Strings mittels || .

CREATE VIEW nnvn\_tabelle AS  
SELECT Name || ', ' || Vorname as Gesamtname  
 FROM tabelle  
;  

MfG Georg V.

Ich nutze eine oracle-DB und möchte dort einen View kreieren,
der zwei Daten aus einer Tabelle in einem Feld zusammenführt.

Hi,

so sollte die Abfrage aussehen:

SELECT Vorname + ', ’ + Name AS Fullname FROM …

LG
Manfred Matschke

Hallo,

das ist ziemlich leicht

Create View Viewname as
Select Trim(Nachname) || ', ’ || Trim(Vorname) as Gesamtname from Anschriften;

Hallo,

bin mit Oracle nicht sehr vertraut, aber folgendes sollte auch dort funktionieren:

create view fnameview (gesamtname) as select concat(concat(trim(name), ", "), trim(vorname)) from anschrift;

Test:
select * from fnameview;

Gruß
Erhard

ich habe folgende Frage:
Ich nutze eine oracle-DB und möchte dort einen View kreieren,
der zwei Daten aus einer Tabelle in einem Feld zusammenführt.
Beispiel:
In der Tabelle „Anschrift“ existieren ca. 15.000 Datensätze
und es gibt u.a. 2 Spalten „Name“ und „Vorname“, die mit Daten
wie Müller, Meier, Schulze bzw. Max, Gerd oder Uli gefüllt
sind.
Ich möchte nun in einem View auf diese Tabelle Name und
Vorrname in einer Spalte „Gesamtname“ stehen haben. In diesen
Datenfeldern soll dann z.B. „Müller, Max“ oder „Meier, Gerd“
oder „Schulze, Uli“ stehen.
Ich hoffe, ich habe mich verständlich ausgedrückt.
Mit welcher SQL-Syntax bekomme ich das hin?
Danke im Voraus.

Hallo Ptonka,

Das geht über die Concatenate-Funktion:

http://www.1keydata.com/sql/sql-concatenate.html

Schöne Grüße, Robert

Hi!

name || ', ’ || vorname

sollte helfen. Ansonsten einfach mal eine Suchmaschine benutzen…

Hi,

also mit Oracle kann ich dir nicht dienen, wird aber wohl kaum einen Unterschied zu MSSQL machen.

Mach doch einfach…

CREATE VIEW anschriften AS
SELECT a.vorname, a.nachname, ISNULL(a.vorname + ‚,‘) + ISNULL(a.nachname, ‚‘) AS NameKombiniert FROM tbl_anschriften AS a

…kein Problem :wink:

Aber mit Sichten und großen Datenmassen wäre ich vorsichtig. Wenn du dann anfängst sichten zusammen zu Joinen wirds/kann es schnell langsam werden.

Hi,

bin jetzt kein Oracle-Spezl aber das sollte so gehen:

Select Name||’ '||Vorname from …

gerade keine Zeit für eine detaillierte Antwort.