【问题标题】:Error while creating a join in sql在 sql 中创建连接时出错
【发布时间】:2015-09-17 16:47:19
【问题描述】:
SELECT permission.bit,permission.name  
FROM user 
LEFT JOIN permission ON user.role & permission.bit
WHERE user.id = 1

我有这样的查询,我得到这个错误:

消息 4145,第 15 级,状态 1,第 3 行
在预期条件的上下文中指定的非布尔类型表达式,靠近“位”。

【问题讨论】:

  • ON user.col = permiss.col 并使用AND 代替& 加入条件

标签: sql-server tsql


【解决方案1】:

我认为您正在尝试进行按位比较

SELECT  permission.bit,permission.name  
FROM user LEFT JOIN permission 
   ON user.role & permission.bit <> 0
WHERE user.id = 1

【讨论】:

  • 是的,我尝试了您发布的查询,但仍然有相同的错误消息,谢谢
  • 我认为 user.role 不是位类型字段,是吗?我相信“角色”有许多可能的值,而不是 TRUE 或 FALSE
  • 其实如果是按位比较的话,.role 和.bit 都应该是整数。因此,例如,如果角色 = 10,那么对于位值 2 和 8,join 将给出 true
猜你喜欢
  • 2015-07-15
  • 2021-07-07
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 2013-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多