Speichern der Abfrage Ergebnis in variable
Ich erklärt habe 6 Variablen in einer gespeicherten Prozedur, und ich möchte speichern einer Abfrage-Ergebnis (die bringen kann bis zu 6 Datensätzen) in jeweils einer dieser Variablen. Meine Abfrage sieht wie folgt aus:
DECLARE
@Sib1 varchar(20),
@Sib2 varchar(20),
@Sib3 varchar(20),
@Sib4 varchar(20),
@Sib5 varchar(20),
@Sib6 varchar(20)
select
PC.SKU
from
Product PC
where
Parent_code in (select
Parent_code
from
Product
where
SKU =12345)
and ParentFlag <> 'p'
and SKU <> 12345
order by Parent_Child_Priority desc
Möchte ich jedem der resultierenden SKU in jedem @SIB-Variablen. wenn es gibt nur 1 Ergebnis, das möchte ich null-Werte in den rest des @SIB-Variablen.
Dank.
- Warum nicht mit einer temp-Tabelle statt? Mit Hilfe von Variablen wie, das wird sehr schwierig sein, zu füllen.
- Denken Sie in Begriffe von Datensätzen in relationalen Datenbank-design, nicht Zeilen/Datensätze.
- Mein Ziel ist es, diese resultierende SKU ist in einer anderen Abfrage in der where-Klausel. Das ist, warum ich bin versucht zu speichern diese in einer variable, und verwenden Sie Sie später. Irgendwelche anderen Vorschläge?
- klingt vielleicht möchten Sie eine Tabelle Wert Funktion
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie legen Sie die SKU ' s in eine table-variable, die mit einer identity-Spalte. Dann legen Sie die Variablen gleich der sku in der Tabelle auf der Basis der identity-Spalten Wert.
BEARBEITEN
Lieber eine Tabelle variable wie
Dann legen Sie es in
Jetzt können Sie
@MyTableVar
wie Sie benötigen. Sie brauchen nicht zu erklärenN
variable fürN
records.