Ich kann einzelne Zeichenfolge in Komma getrennte Zeichenfolge überprüfen, zum Beispiel varchar Datenfeld zu finden , die einzelnen Wert enthält, wie 1 or 2 or 5
in '1,2,3,4,5'
String durch Kommas getrennt , wie hier beschrieben: https://stackoverflow.com/a/49202026/1830909 , aber ich frage mich , wie könnte ich überprüfen, ob die Vergleichszeichenfolge keine einzelne feste Zeichenfolge ist und auch eine durch Kommas getrennte Zeichenfolge ist. zum Beispiel ist das Datenfeld varchar und enthält eine durch Kommas getrennte Zeichenfolge, '1,3,4'
und ich möchte überprüfen, ob eines der Elemente wie 1 oder 3 oder 4 in einer durch 1,2,3,4,5'
Kommas getrennten Zeichenfolge vorhanden ist.
Klarstellung: Obwohl "begrenzte Zeichenfolgen in einer Spalte zu halten ist eine schlechte Idee", aber ich denke, es spielt keine Rolle, wenn der größte Wert nur weniger als 15 Elemente enthält, in manchen Situationen habe ich zu viele Tabellen und möchte nicht erhöht werden. Ein anderer Grund ist die Verwendung von json zum Übertragen von Daten, das Analysieren aller Werte in einer begrenzten Zeichenfolge und das Speichern in einer Spalte der DB-Tabelle und das Zusammenführen von DB als Zeichenfolge und Pars zu verschiedenen Werten.
Sie benötigen einen String-Splitter (AKA Tokenizer). In SQL 2016+ können Sie string_split vor 2016 verwenden, ich empfehle DelimitedSplit8K . Dieser Code gibt eine 1 zurück, wenn ein passender Wert vorhanden ist, andernfalls eine 0.
DECLARE
@string1 varchar(100) = '1,32,2',
@string2 varchar(100) = '1,2,3,4,5';
SELECT matchingValue = ISNULL(MAX(1),0)
FROM string_split(@string1,',')
WHERE [value] IN (SELECT [value] FROM string_split(@string2,','));
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen