Når du skal sammenligne data mellem to rækker, så hænger du næsten altid på at skulle bruge en cursor - specielt hvis du ønsker at styre udfaldet.
Ellers skal du lade din applikation foretage sammenligningen - men det er så faktisk det samme som at benytte en cursor.
eks
declare @col1a int, @col2a varchar(8), @col1b int, @col2b varchar(8) declare crsr cursor local fast_forward for select top 2 col1, col2 from mytable
open crsr fetch next from crsr into @col1a, @col2a fetch next from crsr into @col1b, @col2b close crsr deallocate crsr
if @col1a <> @col1b or @col2a <> @col2b begin ... end else begin ... end
En anden mulighed er, hvis der er en unik nøgle på dine rækker som ikke skal indgå i sammenligningen, så kan du blot gøre noget i denne stil: select count(*) from ( select col1, col2 from mytable where id = 1 union select col2, col2 from mytable where id = 2 ) x
Din count vil nu indeholde et 1 tal hvis de to rækker er ens og to hvis de er forskellige...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.