在sql查询中使用EXCEPT标识符时出错

在sql查询中使用EXCEPT标识符时出错,sql,forms,except,Sql,Forms,Except,我有一个用户表,其中一个属性是habits,它具有购物、体育等价值。现在,当我登录到我的应用程序时,我从表单标签中获取用户名,这在javascript中用于进一步使用。我需要一个显示所有用户表内容的查询,其中habits=shopping,但不应显示当前登录用户的详细信息。我用于此的查询是, 从用户那里选择*,除了从用户那里选择*,从用户那里选择用户名='niranjan' 但此行生成了一个错误,指出EXCEPT标识符此时不是有效输入。 请更正我的错误或为我的问题提供替代代码。除此之外,无需使用

我有一个用户表,其中一个属性是habits,它具有购物、体育等价值。现在,当我登录到我的应用程序时,我从表单标签中获取用户名,这在javascript中用于进一步使用。我需要一个显示所有用户表内容的查询,其中habits=shopping,但不应显示当前登录用户的详细信息。我用于此的查询是,
从用户那里选择*,除了从用户那里选择*,从用户那里选择用户名='niranjan'

但此行生成了一个错误,指出EXCEPT标识符此时不是有效输入。

请更正我的错误或为我的问题提供替代代码。

除此之外,无需使用。只需在where caluse中添加一个条件:

select * from user where habits='shopping' and username!='niranjan'; 
And username <> 'niranjan'
和用户名“niranjan”

问题可能是
用户是SQL Server的用户。我建议您将表重命名为
users
,以解决此问题

同时,可以使用方括号进行查询:

select * from [user] where habits = 'shopping'
except
select * from [user] where username = 'niranjan';

然而,在表名和列名中使用保留字是不好的形式。

您使用什么RDBMS?除
外,并非所有这些表都支持
,但如果您发布
用户
表的结构,我们可以在不使用该表的情况下帮助更正查询(可能非常简单,如
SELECT*FROM user WHERE habits='shopping'和username'niranjan'
),非常感谢@micheal berkowski!!!它确实起作用了。我使用了帮助我解决问题的“”符号虽然我同意使用保留字是一个坏习惯,但为什么要保留保留,除非可以通过在第一个select语句中添加条件来清楚地替换它?“我是不是错过了什么?还是你?@ZoharPeled。我认为你是对的,因为
选择*
。在某些情况下,
select
可能有一部分列,而这两个版本并不相同。