大家好:
我是rourke到SQL,这是我怀疑使用OR运算符。我有一个有2条记录的员工表,第1行的employeeid列为1,第2行列值为*。我的查询必须获取employeeid列值为1的行,否则它必须获取employeeid为*的行。最后,查询必须获取一组记录,即employeeid为1的记录集或employeeid为*的记录集。
我使用了“从员工中选择*,其中emp_id ='1'或者emp_id ='*';”但是结果集正在获取employeeid值为1的所有行*。我只想要一组记录。
如何在SQL中执行此操作?提前致谢
答案 0 :(得分:2)
试试这个:
SELECT *
FROM Employee
WHERE emp_id = '1'
UNION ALL
SELECT *
FROM Employee
WHERE emp_id = '*'
AND NOT EXISTS
(
SELECT 1
FROM Employee
WHERE emp_id = '1'
)
答案 1 :(得分:2)
Select *
from Employee
where emp_id = case
when exists (select * from Employee where emp_id = '1')
then '1'
else '*'
end
答案 2 :(得分:0)
select * from Employee where emp_id = '1' OR emp_id IS NOT NULL
答案 3 :(得分:0)
select top 1 * from Employee where emp_id = '1' or emp_id = '*' order by emp_id desc