Hãy xem ví dụ Oracle SQL, mà làm việc một cách hoàn hảo:T-SQL tương đương với oracle sql mệnh đề where với nhiều cột
mẫu dữ liệu:
SQL> create table test (a number, b number);
SQL> insert into test values(1, 1);
SQL> insert into test values(1, 2);
SQL> insert into test values(1, 3);
SQL> insert into test values(1, 4);
SQL> insert into test values(1, 5);
SQL> insert into test values(2, 1);
SQL> insert into test values(2, 2);
SQL> insert into test values(2, 3);
SQL> insert into test values(2, 4);
SQL> insert into test values(2, 5);
SQL> insert into test values(4, 1);
SQL> select * from test;
A B
---------- ----------
1 1
1 2
1 3
1 4
1 5
2 1
2 2
2 3
2 4
2 5
4 1
Query:
SQL> select * from test where (a, b) in (select 1, 4 from dual);
A B
---------- ----------
1 4
Dưới đây là sql-fiddle: http://www.sqlfiddle.com/#!4/8375e/3/0
Câu hỏi đơn giản: có bất kỳ sự tương đương nào trong MS không SQL ở trên "ở đâu (a, b)" khoản? Tôi đã tìm kiếm trong google, MS Documents và không có gì cho đến nay ...
http://stackoverflow.com/questions/4452539/sql-server-in-clause-with-multiple-fields – Habib
Nó hoạt động như thế nào trong Oracle? Nó giống như 'select * từ thử nghiệm trong đó a = 1 và b = 4;'? Vậy thì lợi ích là gì? –
N.B: '(a, b)' được gọi là "biểu thức giá trị hàng" hoặc một bộ tuple. Điều này có thể giúp với googling. –