我有一个名为 empSchedule
的表。
empSchedule
由name
、task
和visibility
组成。
visibility
是“公开”或“私有(private)”。
无论 visibility
是“public”还是“private”,我都想选择表格中的所有内容。但是,如果 visibility
是“private”,我想将 task
中的值设为空白。
例如,我想使用 SELECT 查看这样的表
+----------+-------+------------+
| name | task | visibility |
+----------+-------+------------+
| john | HW | public |
| james | TextC | public |
| bill | | private |
+----------+-------+------------+
下面的查询不起作用,因为它排除了所有私有(private)行。
SELECT name, task, visibility
FROM empSchedule
WHERE visibility = 'public';
我正在学习 SQL,因此如果无法完成我正在寻找的内容,我希望看到替代答案。
最佳答案
你只需要一个小的case
表达式
SELECT name,
CASE visibility WHEN 'private' THEN '' ELSE task END task,
visibility
FROM empSchedule
WHERE visibility IN ('public', 'private')
关于mysql - SQL SELECT 并使数据中的某些列返回空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49248374/