我的简单sql语句是这样的:
SELECT USERNAME FROM ALL_USERS;
但我想从结果中过滤系统用户。我搜索但找不到 Oracle 提供的任何内容;所以我尝试了这样的声明,但它不起作用:
select username from all_users where username not like '%SH%'
or username not like '%SYS%'
or username not in ('ANONYMOUS',
'DBSNMP',
'MGMT_VIEW',
'ORDPLUGINS',
'OUTLN',
'SI_INFORMATION_SCHEMA',
'WK_TEST',
'WKPROXY',
'XDB');
这不起作用。我应该如何修改我对所需输出的查询,或者 oracle 提供了一些东西来获取预定义的系统帐户?
最佳答案
其他答案略有不同:not (A or B or C) = not A and not B and not C,所以你可能最初想要的是:
select username from all_users
where not (username like '%SH%'
or username like '%SYS%'
or username in ('ANONYMOUS',
'DBSNMP',
'MGMT_VIEW',
'ORDPLUGINS',
'OUTLN',
'SI_INFORMATION_SCHEMA',
'WK_TEST',
'WKPROXY',
'XDB')
);
关于sql - 如何在一个查询中使用 LIKE 和 IN 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8310747/