Ich habe ein sehr einfaches Problem, das ich nicht lösen kann. Ich muss so etwas tun:
select distinct * from (1, 1, 1, 2, 5, 1, 6).
Jeder kann helfen?
Bearbeiten
Die Daten stammen als Textdatei von einem unserer Kunden. Es ist völlig unformatiert (es ist eine einzelne, sehr lange Textzeile), aber möglicherweise ist dies in Excel möglich. Für mich ist dies jedoch nicht praktikabel, da ich diese Werte in meiner SQL-Abfrage verwenden muss. Es ist nicht bequem, dies jedes Mal zu tun, wenn ich eine Abfrage ausführen muss.
sql-server
select-query
Eedoh
quelle
quelle
$d = (1, 1, 1, 2, 5, 1, 6) | sort -Unique
die unterschiedlichen Werte in einem Array abrufen$d
. Einfache Erweiterung auf ein Datei-zu-Datei-Tool.Antworten:
Der einfachste Weg, um die unterschiedlichen Werte einer langen Liste von durch Kommas getrennten Texten zu erhalten, besteht darin, einen Ersatz durch UNION zu finden, um die unterschiedlichen Werte zu erhalten.
Wird auf Ihre lange, durch Kommas getrennte Textzeile angewendet
UNION SELECT
SELECT
vor der Anweisung ein einSie sollten jetzt eine funktionierende Abfrage haben
quelle
Nur unter SQL Server 2008 und höher verfügbar ist der Zeilenkonstruktor in folgender Form:
Sie können ihn verwenden
Viele schrieben darüber, darunter:
quelle
X
ist Alias für Tabellenname unda
Alias für Spaltenname;).pgsql
und schlug jetzt mit dem Kopf, damit FROM kleinere Werte als Zeilendatensätze akzeptiertsqlserver
, und hier ist es. Schön zu wissen.Allgemein :
In deinem Fall :
quelle
Haben Sie versucht, die folgende Syntax zu verwenden?
quelle
SELECT DISTINCT table_name.column_name FROM (VALUES (1), (2), (3)) AS table_name(column_name)
Wenn Sie nur bestimmte Werte aus einer einzelnen Tabelle auswählen möchten, können Sie dies versuchen
z.B:
Wenn Sie aus mehreren Tabellen auswählen möchten, müssen Sie sich für entscheiden
UNION
.Wenn Sie nur die Werte 1, 1, 1, 2, 5, 1, 6 auswählen möchten, müssen Sie dies tun
quelle
PostgreSQL bietet Ihnen zwei Möglichkeiten, dies zu tun:
oder
Mit dem Array-Ansatz können Sie auch Folgendes tun:
quelle
:)
Dies funktioniert unter SQL Server 2005 und wenn es eine maximale Anzahl gibt:
quelle
Ich weiß, dass dies ein ziemlich alter Thread ist, aber ich habe nach etwas Ähnlichem gesucht und mir das ausgedacht.
Vorausgesetzt, Sie hatten eine durch Kommas getrennte Zeichenfolge, können Sie diese verwenden
string_split
Dies sollte zurückkehren
Die Zeichenfolgenaufteilung verwendet zwei Parameter, die Zeichenfolgeneingabe und das Trennzeichen.
Sie können eine optionale where-Anweisung hinzufügen, die
value
als Spaltenname verwendet wirdproduziert
quelle
Wenn Sie ein Array benötigen, trennen Sie die Array-Spalten durch ein Komma:
quelle
Eine andere Möglichkeit, die Sie verwenden können, ist eine Abfrage wie die folgende:
quelle
quelle
Eine Technik, die für mich funktioniert hat, besteht darin, eine Tabelle abzufragen, von der Sie wissen, dass sie eine große Anzahl von Datensätzen enthält, einschließlich nur des Felds Row_Number in Ihrem Ergebnis
Gibt eine Ergebnismenge von 10000 Datensätzen von 1 bis 10000 zurück. Verwenden Sie diese in einer anderen Abfrage, um die gewünschten Ergebnisse zu erhalten
quelle
Verwenden Sie die SQL-
In
FunktionEtwas wie das:
Funktioniert in ArcGIS
quelle