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
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.