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

Използване на кортежи в SQL IN клауза

Като се има предвид много незначителна настройка (заменете двойните кавички с единични и добавете VALUES ключова дума), предложеният от вас синтаксис е валиден стандартен SQL-92 синтаксис, т.е.

SELECT *
  FROM mytable
 WHERE (group_id, group_type) IN (
                                  VALUES ('1234-567', 2), 
                                         ('4321-765', 3), 
                                         ('1111-222', 5)
                                 );

За съжаление MSFT не са го добавили към SQL Server и го смятат за „непланирана“ функция.

FWIW PostgreSQL и Sqlite са примери за SQL продукти, които поддържат този синтаксис.



  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 израз?

  2. Всеки външен ключ на SQL Server трябва ли да има съвпадащ индекс?

  3. Как мога да автоматизирам задачата за генериране на скриптове в SQL Server Management Studio 2008?

  4. SQL грешка:Неправилен синтаксис близо до ключовата дума „Потребител“

  5. Как да изброите всички дати между две дати