2016-04-14 7 views
0

Folgendes ist ein Beispiel für Daten in einem Feld: -Wie man eine Auswahl an Zeichen durchführt, die durch ein Pipe-Zeichen getrennt sind

| 10 | | 1 | | 9 | 1 | | 10 | 1 |

Ich muss in der Lage sein zu sagen, Daten enthalten, wo es eine | 1 | im Feld. Ich habe folgendes ohne Glück versucht. Irgendwelche Vorschläge geschätzt: - 1. SUBSTRING (JobSites, 2, CHARINDEX ('|', JobSites)) - 2. where JobSites = '% | 1 |%' Ich kann 1 nicht verwenden, da die Zeichenlängen nicht konsistent sind.

+0

Welche Plattform würden Sie nutzen? Welche Programmiersprachen kennst du? –

+0

Ich benutze SQL 2008 R2 – yoda

Antwort

1

Rohre sind perfekt für die Verwendung eines Trennzeichens. Ich würde die folgenden Schritte unternehmen, um dies zu erreichen. Zu Tara können Sie das Parsing mit Ihrer Technologie der Wahl durchführen (Excel, Python, SQL, usw.).

1) Parse each number into a different column 
2) Set the value in each column = 0 if != 1 
3) Filter using a having statement where the sum of each column is >= 1. 

Kurz gesagt, was Sie mit Ihrer WHERE-Klausel zu tun versuchen, wird nicht genau sein.

+0

Lassen Sie mich wissen, wenn Sie Anleitung zu einem der oben genannten Schritte benötigen. Ich würde mich freuen weiter zu helfen oder in die richtige Richtung zu weisen. –

+0

danke Susan. Das Problem, das ich mit Schritt 2) habe, ist, dass die Zeichenlänge nicht stagniert. I.e. Ein Feld kann "| 10 | 1 |" oder | 9 |, also kann ich nicht sagen ... nimm die ersten drei Zeichen (wie 10 ist zwei, aber eine 9 ist eins. Wie komme ich um diesen pl? – yoda

+0

Eine dynamische Breite sollte kein Problem sein. Der Einfachheit halber Verwenden Sie die Import-/Export-Tools, um Ihre Daten in eine Flat-Datei herunterzuladen und per Pipe zu trennen, was zu einer uneinheitlichen Anzahl von Spalten führt, aber wenn Sie sie zurück in SQL hochladen, können Sie die NULL-Werte in Nullen umwandeln. Diese Nullen sollten für Ihre späteren Schritte kein Problem darstellen.Wenn Sie den SQL-Assistenten zuvor noch nicht verwendet haben, habe ich einen Link eingefügt, um Sie auf dem neuesten Stand zu halten.Aber Sie sollten "SQL Server NAtive Client 11.0" als Ihren auswählen Datenquelle und flache Datei (geben Sie CSV im Dateityp an) als Zieladresse –

0

dies endete sufficient..JobSites = '% | 1 |%' zu sein