我需要提供一个标志 - 如果条件不满足则为0,如果是,则为1 - 我可以以两种不同的方式进行:
获取员工ID,名称,如果其他人在子订单中,则为1 - 否则为0:
SELECT e.ID
, e.Name
, ISNULL ( ( SELECT TOP 1 1 FROM Employee se WHERE se.ManagerID = e.ID ) , 0 ) AS HasSubordinates
FROM Employee e
Run Code Online (Sandbox Code Playgroud)
要么
SELECT e.ID
, e.Name
, ISNULL ( ( SELECT 1 WHERE EXISTS ( SELECT * FROM Employee se WHERE se.ManagerID = e.ID ) ) , 0 ) AS HasSubordinates
FROM Employee e
Run Code Online (Sandbox Code Playgroud)
你会选择哪个版本?为什么?
这个怎么样 ?
SELECT o.ID
, o.Name
, o.StartDate
, …Run Code Online (Sandbox Code Playgroud)