OR运算符的基本疑问

时间:2011-06-02 16:11:18

标签: sql

大家好:
我是rourke到SQL,这是我怀疑使用OR运算符。我有一个有2条记录的员工表,第1行的employeeid列为1,第2行列值为*。我的查询必须获取employeeid列值为1的行,否则它必须获取employeeid为*的行。最后,查询必须获取一组记录,即employeeid为1的记录集或employeeid为*的记录集。

我使用了“从员工中选择*,其中emp_id ='1'或者emp_id ='*';”但是结果集正在获取employeeid值为1的所有行*。我只想要一组记录。

如何在SQL中执行此操作?提前致谢

4 个答案:

答案 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