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

Tham gia chéo không có kết hợp trùng lặp

select A.id aid,B.id bid
from A inner join B on a.id <= b.id
union
select B.id,A.id
from A inner join B on b.id < a.id

Nếu bạn muốn tinh vi hơn:

select distinct
       case when a.id<=b.id then a.id else b.id end id1,
       case when a.id<=b.id then b.id else a.id end id2
from A cross join B

Trong lần nướng bánh nhỏ không khoa học của tôi với những chiếc bàn nhỏ, chiếc bàn sau nhanh hơn. Và bên dưới, case biểu thức được viết dưới dạng truy vấn con.

select distinct
       (select MIN(id) from (select a.id union select b.id)[ ]) id1,
       (select MAX(id) from (select a.id union select b.id)[ ]) id2
from A cross join 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. SQL kết hợp với truy vấn con SQL (Hiệu suất)?

  2. Cách hiệu quả để nhận @@ rowcount từ một truy vấn bằng cách sử dụng row_number

  3. Tổng các chữ số của một số trong máy chủ sql mà không cần sử dụng các vòng lặp truyền thống như while

  4. Cách thêm cột nhận dạng vào bảng bằng TSQL và GUI trong SQL Server - Hướng dẫn SQL Server / T-SQL Phần 40

  5. SYSDATETIMEOFFSET () Ví dụ trong SQL Server (T-SQL)