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