sql >> Databasteknik >  >> RDS >> Sqlserver

Lagrad procedur returnerar flera resultatuppsättningar

Du väljer nästan bara två resultatuppsättningar

SELECT * FROM @myTable1
SELECT * FROM @myTable2

Vissa verktyg kommer dock att dölja vissa resultat (t.ex. pgAdmin visar bara det sista) och vissa verktyg har något slags krav för att komma till nästa resultatuppsättning (t.ex. .NET:s IDataReaders tillåter dig inte att Read() från den andra resultatuppsättningen tills du anropar NextResult() ).

Redigera:

Ett alternativ i det här fallet, eftersom typerna av de två resultaten matchar, är att kombinera dem till en enda resultatuppsättning:

SELECT field0, field1 from @myTable1
UNION
SELECT field0, field3 from @myTable2

Du kan också välja mellan UNION ALL eller UNION DISTINCT (standard) där den senare bara skickar rader som inte är upprepningar.



  1. Skillnaden mellan mysql och mysqli

  2. Trunkera alla tabeller (varav de flesta har begränsningar). Hur man tillfälligt släpper dem

  3. Varför stänger vi resultatet i Mysqli

  4. Hur kombinerar man dessa frågor för att uppnå snabbare prestanda?