2010-01-24 7 views
0

J'utilise un curseur SQL. Je veux sélectionner les valeursValeur du curseur SQL dans un seul groupe

While(@@fetchstatus ==0) 
BEGIN 
    if(cond) 
    SELECT rownumber, rowname FROM TABLE 
END 

Pendant le premier tour d'exécution de la boucle While, j'obtiens la valeur.

1, "firstrow" (de la ligne select)

Suivant

2, "SecondRow"

Toutes ces valeurs sont affichées dans ma sortie sous forme de lignes séparées. Est-il possible de combiner et d'affichage en deux sorties comme celui-ci

1, "FirstRow"

2, "SecondRow"

+1

Je voudrais aider, mais je trouve cela difficile à lire et à comprendre ce que vous essayez de communiquer. –

+0

@Pions que j'ai éditées avez-vous besoin de plus –

+2

Pourquoi un SELECT ne fonctionnerait-il pas - en plaçant le Cond dans la clause "Where"? Je peux me tromper, mais cela ressemble à un cas classique de quelqu'un qui cherche un curseur parce qu'ils sont plus familiers avec la programmation procédurale que la caractéristique de développement basée sur l'ensemble de SQL. Alors ... pouvez-vous fournir plus de détails? Est-ce juste que vous voulez imprimer les résultats? Eh bien, vous n'avez toujours pas besoin de curseur - au moins si vous travaillez dans SQL Server. –

Répondre

0

Si vous avez besoin realy la boucle sur le curseur, cela pourrait être utile:

-- create temptable 
select top 0 rownumber, rowname 
into #temp 
from table 

-- loop through your cursor 
While(@@fetchstatus ==0) 
BEGIN 
    if(cond) 
    begin 
    insert into #temp 
    SELECT rownumber, rowname FROM TABLE 
    end 
END 

select rownumber, rowname from #temp 

drop #temp