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

SQL Server:Как да използвам UNION с две заявки, които И ДВЕТЕ имат клауза WHERE?

Трябва да можете да ги псевдоним и да използвате като подзаявки (част от причината, поради която първото ви усилие е било невалидно, е, че първият избор имаше две колони (ID и ReceivedDate), но вторият ви имаше само една (ID) - също така, Type е запазен дума в SQL Server и не може да се използва, както сте го имали като име на колона):

declare @Tbl1 table(ID int, ReceivedDate datetime, ItemType Varchar(10))
declare @Tbl2 table(ID int, ReceivedDate datetime, ItemType Varchar(10))

insert into @Tbl1 values(1, '20010101', 'Type_1')
insert into @Tbl1 values(2, '20010102', 'Type_1')
insert into @Tbl1 values(3, '20010103', 'Type_3')

insert into @Tbl2 values(10, '20010101', 'Type_2')
insert into @Tbl2 values(20, '20010102', 'Type_3')
insert into @Tbl2 values(30, '20010103', 'Type_2')

SELECT a.ID, a.ReceivedDate FROM
 (select top 2 t1.ID, t1.ReceivedDate
  from @tbl1 t1
  where t1.ItemType = 'TYPE_1'
  order by ReceivedDate desc
 ) a
union
SELECT b.ID, b.ReceivedDate FROM
 (select top 2 t2.ID, t2.ReceivedDate
  from @tbl2 t2
  where t2.ItemType = 'TYPE_2'
  order by t2.ReceivedDate desc
 ) b


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как можем да видим тялото на криптираната съхранена процедура в SSMS?

  2. неразрешена препратка към обект [INFORMATION_SCHEMA].[TABLES]

  3. Как да премахна акцентите и всички знаци <> a..z в sql-сървър?

  4. Разбиране на важността на настройката на паметта в SQL Server

  5. DATENAME() Примери в SQL Server