Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

връща само последните избрани резултати от съхранена процедура

Използвайте таблична променлива:

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. TSQL md5 хеш, различен от C# .NET md5

  2. Как да се ангажира и отмени транзакция в sql сървър?

  3. Актуализиране на пощенски профил на база данни в SQL Server (T-SQL)

  4. Изследване на онлайн индексни операции на ниво дял в SQL Server 2014 CTP1

  5. MDX Как да изчисля мярка спрямо измерение, без да показвам членове в резултатите