Wie kann ich den Wert einer Excel-Zelle in einer SQL-Abfrage von Office Data Connection mit einem IN-Operator verwenden?

630
cori

Ich habe eine Office-Datenverbindung, die eine SQL-Abfrage für eine externe Datenquelle ausführt und einige dynamische Parameter verwendet, die in einer Zelle in einem Arbeitsblatt bereitgestellt werden. Solange ich sowas mache

SELECT * FROM TABLE1 WHERE FIELD1 = ?

Wenn Sie die Parameterquelle entsprechend einstellen, funktionieren die Dinge einwandfrei. Jedoch wenn ich so etwas versuche

SELECT * FROM TABLE1 WHERE FIELD1 IN (?)

Jeder Versuch, einen Wert wie 1,3,5,7die Abfrage anzugeben, scheint nur auf den ersten Wert in der Liste zu achten, nicht auf die gesamte Quelle (also 1,3,5bekomme ich Zeilen mit einer 1 im entsprechenden Feld und mit 3,5,7Zeilen mit einer 3 in der entsprechendes Feld).

Gibt es eine Möglichkeit für mich, eine Liste von Werten zur Verfügung zu stellen, die als Parameterwert in einem IN-Operator in der SQL-Abfrage verwendet werden, die mir völlig fehlt?

BEARBEITEN

Ich füge die Liste der Parameterwerte in ein einzelnes Excel-Feld ein. Excel fügt auch automatisch den Feldwert vor ', um Werte zu umgehen, die als Text behandelt werden müssen. Keine Kombination der Zellenformatierung scheint das 'Zeichen zu beseitigen .

Bereitstellung (1,3,5)im Abfragekörper statt (?)wie erwartet; Nur wenn Sie versuchen, eine Excel-Zelle als dynamischen Parameter zu verwenden, funktionieren die Dinge nicht.

1
Funktioniert `SELECT * FROM TABLE1 WHERE FIELD1 IN (1,3,57)` wie erwartet? Haben Sie "1,3,5,7" in derselben Zelle oder jede Nummer in einer eigenen Zelle? Máté Juhász vor 7 Jahren 0
Frage aktualisiert, danke! cori vor 7 Jahren 0

0 Antworten auf die Frage