Announcement

Collapse
No announcement yet.

Abfrage von Komma getrennten Werten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abfrage von Komma getrennten Werten

    Hallo

    Ich habe eine Spalte namens "Branche"
    Darin sind Werte Komma getrennt. Die Anzahl ist verschieden.

    Ich bräuchte aber alle Einträge einzeln und von jedem auch nur einen.
    Distinct ist mir bekannt, aber wie die Werte von der Zelle Auslesen?

    Bsp
    Elektro,Bau,Friseur
    Bau,Bäcker,Architekt

    Als Ergebnis soll
    Elektro
    Bau
    Friseur
    Bäcker
    Architekt

    Liefern.

    Für Hilfe wäre ich dankbar.

  • #2
    musste eine Tabellenfunktion schreiben und die dann anwenden... Beispielsweise:[HIGHLIGHT="SQL"]BEGIN TRAN;
    GO
    CREATE FUNCTION dbo.Split
    ( @Input NVARCHAR(MAX)
    , @Split NVARCHAR (32)
    ) RETURNS @Rows TABLE
    ( RowNum INTEGER IDENTITY (1,1)
    , Value NVARCHAR(MAX)
    ) AS
    BEGIN;
    DECLARE @End INT;
    SET @End = CHARINDEX (@Split, @Input, 1);
    WHILE @End != 0
    BEGIN;
    INSERT INTO @Rows (Value) VALUES (SUBSTRING (@Input, 1, @End - 1));
    SET @Input = SUBSTRING (@Input, @End + DATALENGTH (@Split) / 2, DATALENGTH (@Input) / 2); --0374
    SET @End = CHARINDEX (@Split, @Input, 1);
    END;
    IF LEN (@Input) != 0
    INSERT INTO @Rows (Value) VALUES (@Input);
    RETURN;
    END;
    GO
    WITH Texts (ARow, AText)
    AS ( SELECT 1, N'Elektro,Bau,Friseur' UNION ALL
    SELECT 2, N'Bau,Bäcker,Architekt'
    )
    SELECT DISTINCT S.value
    FROM Texts AS T
    CROSS APPLY dbo.Split (T.Atext, N',') AS S

    ROLLBACK[/HIGHLIGHT]

    Comment


    • #3
      Auch wenn das OT ist - und ich ggf. Haue bekomme:

      Es gibt ggf. Gründe, warum die Daten so abgelegt sind, wie sie es sind - und ich weiss leider auch nicht, warum sie jetzt auf dem Server temporär umgeschichtet weren sollen bzw. was die Anwendung wirklich ist....

      Aber das ist so'ne Stelle, wo man mal fünf Minuten innehält und sich fragt: Mut dat unbedingt so?

      Comment

      Working...
      X