Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server:Làm thế nào để sử dụng UNION với hai truy vấn mà CẢ HAI có mệnh đề WHERE?

Bạn sẽ có thể đặt bí danh cho chúng và sử dụng làm truy vấn con (một phần lý do khiến nỗ lực đầu tiên của bạn không hợp lệ là vì lựa chọn đầu tiên có hai cột (ID và Ngày nhận) nhưng lựa chọn thứ hai chỉ có một (ID) - ngoài ra, Loại là một từ trong SQL Server và không thể được sử dụng như bạn đã sử dụng nó làm tên cột):

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. Cách lấy tất cả các bảng có ràng buộc khóa chính được tạo trong cơ sở dữ liệu SQL Server - Hướng dẫn sử dụng SQL Server / TSQL 57

  2. Xác định các bước cho con trỏ máy chủ SQL - Hướng dẫn sử dụng SQL Server / TSQL

  3. Hàm DECODE () trong SQL Server

  4. Cách tạo bảng với cột nhận dạng

  5. Làm thế nào để xác định số ngày trong một tháng trong SQL Server?