在SQL中使用MINUS子句的问题

时间:2019-05-14 12:32:44

标签: sql sql-server

在两个语句之间使用减号子句时,出现了一些错误。有人可以帮我弄这个吗?

  

错误是消息102,级别15,状态1,第101行   “ MINUS”附近的语法不正确。

 SELECT a from (SELECT DISTINCT(name) as a FROM hack WHERE name LIKE '%') a
 MINUS
 SELECT b from (SELECT DISTINCT(name) as b FROM hack WHERE name LIKE '[aeiou]%[aeiou]') b

2 个答案:

答案 0 :(得分:1)

MINUS在Oracle中存在。通过查看错误消息,希望您正在使用SQL Server。

在SQL Server中,EXCEPT是MINUS的正确替代。

SELECT DISTINCT name        
FROM hack
WHERE name LIKE '%'

EXCEPT

SELECT DISTINCT name
FROM hack
WHERE name LIKE '[aeiou]%[aeiou]'

答案 1 :(得分:1)

您可以将逻辑简化为:

SELECT DISTINCT name 
FROM hac
WHERE name NOT LIKE '[aeiou]%[aeiou]'

简单比较应该比多重比较和集合运算符更有效率。