2016-04-01 15 views
-1

eine Tabelle Variable in eine TempTable Einfügen mit mehreren Spalten (ID, Anzahl, etc.)Wählen Sie in #TempTable aus @Variable Ergebnisse Kartesisches Produkt

Einer der Tabellenvariablen ist:

DECLARE @@gvTempTable TABLE (Number bigint, ID int) 

insert into @@gvTempTable (Number) values ('21212321332332'); 
insert into @@gvTempTable (Number) values ('100000000000'); 
insert into @@gvTempTable (ID) values ('1'); 
insert into @@gvTempTable (ID) values ('12'); 

select * into ##GlobalTempTable from @@gvTempTable; 
select * from ##GlobalTempTable; 

ich brauche ohne NULL-ID und Nummer als eine Zeile angezeigt werden

Diese eine Art Kartesisches Produkt zurückgibt:

[![Current vs Desired result set][1]][1] 

[1]: http://i.stack.imgur.com/twal9.png

+3

'Werte ('21212321332332', 1), ('100.000.000.000', 12)' – artm

+0

Sie mehr in Einzelheiten beschreiben müssen, was das ist Logik hier – Squirrel

+0

Es funktioniert, danke. – enigma6205

Antwort

0

dieser Wille gibt Ihnen das gewünschte Ergebnis

select Number = min(Number), ID = min(ID) 
into ##GlobalTempTable 
from 
(
    select *, rn = row_number() over (partition by case when Number IS NULL then 1 else 2 end order by ID) 
    from @@gvTempTable 
) d 
group by rn 
Verwandte Themen