根据同一表中的条件从表中选择数据

时间:2019-03-05 11:56:36

标签: sql sql-server

我有一个名为Permissions的表,该表包含以下字段:PersmissionId, UserId, DeptId, UserDefault, UserManager, UserNetwork

UserDefault, UserManager, UserNetwork的值可以是TrueFalse

所以我在表中有以下数据:

PersmissionId, UserId, DeptId, UserDefault, UserManager, UserNetwork Row 1: 1, 1, 1, True, False, False Row 2: 1, 1, 2, True, True, False

基本上,我想检索用户的DeptId。因此,如果UserManager字段设置为True,我也想检索它。

select 
    * from Permissions permi
    inner join Permissions permi2
on permi.UserId = permi2.UserId
where permi.UserId = 1

and permi.UBR_CH_DEFAULT = 'True' and permi.UBR_CH_MANAGER = 'True'

问题是它没有返回两行。有人可以帮忙吗?

基本上,我想检查用户是管理员还是用户网络。如果他是其中的任何一位,那么请把行退给我。

3 个答案:

答案 0 :(得分:0)

如果要两行,您似乎想要:

select p.*
from Permissions
where p.UserId = 1 and
      p.UBR_CH_DEFAULT = 'True' ;

如果您想要两行,则不需要管理器上的条件。

答案 1 :(得分:0)

尝试在您的awk 'FNR==NR{a[$1]=$2;next} {$2=sprintf("%.01f",$2+a[$1])} 1' Input_file2 Input_file1 | column -t 语句中使用OR运算符:

JOIN

答案 2 :(得分:0)

您可以使用EXISTS,如果需要一个特定的document.body.querySelector('input[type="file"]') .addEventListener('change', function () { if (this.files[0] && this.files[0].type === 'image/jpeg') { console.log('file is jpg'); } else { console.log('file is not jpg'); } });

userid

如果要检查任何select p.* from permissions p where p.userid = 1 and exists ( select 1 from permissions where userid = p.userid and (usermanager = 'True' or usernetwork = 'True') )

userid

请参见demo