So finden Sie Unterschiede zwischen zwei Strings in SQL
Ich habe zwei strings, möchte ich, um den Unterschied zwischen den Inhalt von zwei strings in SQL ??
beispielsweise
Declare @String1 as varchar(100)='a,b,c,d,e';
Declare @String2 as varchar(100)='b,e';
Nun möchte ich den Unterschied zwischen zwei Zeichenketten wie "a,c,d"
- Comma separated values und SQL gehen nicht gut zusammen...
- Ich bin damit einverstanden, Sie gehen zu wollen, zu teilen diese strings in Ihre Bestandteile tun, und dann etwas wie ein full outer join
- Ist die Antwort, die Sie erwarten, nur bezogen auf die Werte zwischen den Kommas? Denn wenn Sie Streifen aus String1, Werte in String2, Sie würden sich " a,c,d,' (also mit dem letzten Komma)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beide strings müssen aufgeteilt werden in Ihre Teile. In SQL-Server-2008 dies ist am besten zu tun, mit einer XML-Ansatz.
Aufmerksamkeit: Wenn Sie Ihre Daten enthalten verbotene Zeichen wie
<>öä@€&
und nicht einfach nur die lateinischen Buchstaben wie in Ihrem Beispiel müssten Sie einige zusätzliche Anstrengungen...Der rest ist ziemlich einfach: nehmen Sie alle Teile
@String1
sind nicht in@String2
.Das verkettete Ergebnis ist - wieder einmal - am besten über XML -
Versuchen Sie dies:
ON
? Sie könnten read this. Vor allem bei älteren Datenbanken, die waren upgrade mit Skripts, die über eine lange periode, haben Sie vielleicht Probleme mit den default Einstellungen einige Optionen, die, wo nevere ein Upgrade auf die moderne Werte...Interessante Aufgabe, Ist es business-Anforderung, oder was anderes?
a,b,c
ist nur ein Beispiel und man kann nicht arbeiten, dies bis auf einzelne Buchstaben zu zählen... 🙂 Trotzdem +1 von meiner SeiteNehmen Sie zunächst die Funktion aus dem folgenden link Analysieren von durch Kommas getrennte Zeichenfolge IN der Liste der Zeichenfolgen in der Where-Klausel
Dann verwenden Sie die folgende Abfrage;
Welche Ihnen die folgenden Ergebnisse;
Einfache Weise
Ergebnis