ich das unten stehende Abfrage ausgeführt wird:Alternativen zur Verwendung von IN-Klausel
SELECT
ReceiptVoucherId,
VoucherId,
ReceiptId,
rvtransactionAmount,
AmountUsed,
TransactionTypeId
FROM
[Scratch].[dbo].[LoyaltyVoucherTransactionDetails]
WHERE
VoucherId IN
(2000723,
2000738,
2000774,
2000873,
2000888,
2000924,
2001023,
2001038,
2001074,
2001173)
das Ziel, die ReceiptVoucherId/VoucherId/ReceiptId/rvtransactionAmount/AmountUsed/TransactionTypeId Daten für die Liste der voucherId der zu extrahieren ist, dass ich habe.
Mein Problem ist, dass meine Liste der VoucherID des 187k lang ist so eine IN-Klausel nicht möglich ist, da sie den Fehler zurückgibt:
Interner Fehler: Ein Ausdruck Dienste Grenze
erreicht wurde, kann jemand rät zu einer Alternative dazu?
Ich bin mit SSMS 2014
Verwenden Sie stattdessen eine temporäre Tabelle, um die Werte zu speichern –
Wenn diese Gutschein-IDs irgendwo anders vorhanden sind, können Sie anstelle der tatsächlichen Werte auch eine Unterabfrage verwenden. Aber das in einer Tabelle wie @GiorgosBetsos gespeichert zu haben, wäre ein viel sauberer Ansatz. – Mfusiki
Woher kommen diese 187K Werte * von *? Sie sind sicherlich keine feste Liste von Hand eingegeben? Und wohin gehen die Ergebnisdaten *? Es ist viel zu viel für jemanden, um diese Ergebnisse direkt zu konsumieren. Es fühlt sich an, als ob Sie vielleicht eine logische Einzelabfrage in mehrere Verfahrensschritte aufgeteilt haben, und dies ist einer der Zwischenschritte.Wenn wir die gesamten End-to-End-Anforderungen verstehen, können wir möglicherweise eine bessere Gesamtlösung anbieten. –