在两个语句之间使用减号子句时,出现了一些错误。有人可以帮我弄这个吗?
错误是消息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
答案 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]'
简单比较应该比多重比较和集合运算符更有效率。