Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

zwróć tylko ostatnie wyniki wyboru z procedury składowanej

Użyj zmiennej tabeli:

create procedure xxxSearch @a nvarchar(80), @b nvarchar(80)...
as 
begin
  DECLARE @res TABLE(...)
  INSERT INTO @res(...)
  select whatever 
    from MyTable t
    where ((@a is null and t.a is null) or (@a = t.a)) and
          ((@b is null and t.b is null) or (@b = t.b))...

    if @@ROWCOUNT = 0
    begin
        INSERT INTO @res(...)
        select whatever 
          from MyTable t
          where ((@a is null) or (@a = t.a)) and
                ((@b is null) or (@b = t.b))...
          if @@ROWCOUNT = 0
          begin
             ...
          end
    end
    SELECT ... FROM @res
end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Początkowe połączenie z programem SQL Server Połączenie jest wolne. Czemu?

  2. JPA SET IDENTITY_INSERT nie działa

  3. DECRYPTBYASYMKEY() nie zwraca oczekiwanej wartości

  4. Jak wygenerować plan wykonania w SQL Server

  5. Paginacja w SQL - problem z wydajnością