我尝试仅选择表格中包含name_durchgefuehrt
,name_abgelehnt
和name_offen
列中的值以及ID的行。
但是查询会提供所有列,而不仅仅是值。
这是我的问题:
SELECT id, name_durchgefuehrt, name_abgelehnt, name_offen
FROM dashboard
WHERE
name_durchgefuehrt IS NOT NULL
AND name_abgelehnt IS NOT NULL
AND name_offen IS NOT NULL
结果:
编辑:
是的我知道这对你们大多数人来说都是一个简单的问题,但我对“Null”的价值有一个错误的理解,我认为我必须这样做。
无论如何,谢谢你的所有答案。
答案 0 :(得分:2)
NULL
不是''
(空字符串),它是一个可以使用IS NULL
进行测试的特殊状态。
但<> ''
会排除NULL
和''
所以:
SELECT id,name_durchgefuehrt,name_abgelehnt,name_offen
FROM dashboard
WHERE
name_durchgefuehrt <> ''
AND
name_abgelehnt <> ''
AND
name_offen <> ''
答案 1 :(得分:1)
你必须检查你的值是否也是空字符串,它不一定是空值
答案 2 :(得分:1)
我想注意一个字符串也可以包含空格的空格。因此,摆脱空间的更通用的方法是:
SELECT id, name_durchgefuehrt, name_abgelehnt, name_offen
FROM dashboard
WHERE TRIM(name_durchgefuehrt) <> '' AND
TRIM(name_abgelehnt) <> '' AND
TRIM(name_offen) <> '' IS NOT NULL;
由于存在隐藏字符,您可能希望使用正则表达式。例如,如果您有一组空格字符:
SELECT id, name_durchgefuehrt, name_abgelehnt, name_offen
FROM dashboard
WHERE name_durchgefuehrt regexp '[^[:space]]' AND
name_abgelehnt regexp '[^[:space]]' AND
name_offen regexp '[^[:space]]';