我需要选择具有1种状态的个人联系人.
问题是单个联系人可以基于4个不同的列具有多个同时的状态.
活动状态取代非活动状态.如果联系人同时处于活动和非活动状态,则应默认为活动状态.
到目前为止,我的子查询独立工作,但当单个联系人在不同列中具有2个或更多同时状态时,它们返回的值超过1.
关于如何以1状态返回单个联系人的任何想法?
SELECT Contact,
((SELECT 'Active'
FROM MyTable
WHERE Column1 = 1
OR Column2 = 1)
UNION
(SELECT 'Inactive'
FROM MyTable
WHERE Column3 = 1
OR Column4 = 1)) AS MyStatus
FROM MyTable
Run Code Online (Sandbox Code Playgroud)
您是否考虑过使用CASE?
SELECT
Contact,
MyStatus = CASE
WHEN Column1 = 1 OR Column2 = 1 THEN 'Active'
WHEN Column3 = 1 OR Column4 = 1 THEN 'Inactive'
END
FROM
MyTable
Run Code Online (Sandbox Code Playgroud)