Почему EXCEPT не работает?Неверный синтаксис рядом со словом, кроме - PullRequest
5 голосов
/ 02 ноября 2010
SELECT SKU
FROM PartProductSupplemental
EXCEPT
SELECT SKU
FROM Inventory

Почему я получаю эту ошибку:

Неверный синтаксис рядом со словом, кроме

Я проверяю в сети и синтаксически правильный синтаксис:

SELECT ProductID 
FROM Production.WorkOrder
EXCEPT
SELECT ProductID 
FROM Production.Product

Ответы [ 3 ]

9 голосов
/ 02 ноября 2010

Возможно, для режима совместимости вашей базы данных установлено значение 2000 (80) или более раннее.

В Management Studio:

  1. Щелкните правой кнопкой мыши имя базы данных под заголовком «Базы данных» в обозревателе объектов
  2. В открывшемся окне «Свойства» выберите «Параметры» - уровень совместимости находится на третьем месте справа сверху.
0 голосов
/ 02 ноября 2010

Когда я запускаю следующее, оно работает нормально:

with PartProductSupplemental as
(
  SELECT 1 sku
  UNION
  select 2
  UNION
  SELECT 3
  UNION
  select 4
  UNION 
  SELECT 5
),
Inventory as
(
  SELECT 1 sku
  UNION
  select 2
  UNION
  SELECT 3

)

SELECT SKU
FROM PartProductSupplemental
EXCEPT
SELECT SKU
FROM Inventory

Вы уверены, что это на самом деле то, что вы используете?Есть ли какой-нибудь sql выше этого?

0 голосов
/ 02 ноября 2010

попробуйте использовать разные и МИНУС только для проверки.

Кроме того, что должно было работать, поля одного типа?

(работает также в 2005 году, согласно документации, и вам не нужно () для второй фразы).

...