我有一个查询,其中许多列可以为空或空。实际上它们的名称比下面的示例更长,我将其用作示例:
select *
from table1
where field1 is not null and field1 != '' and
field2 is not null and field2 != ''
...etc
必须输入
令人厌烦x is not null and x != ''.
是否有某种方法可以指定“x不为空且x!=''”?
与Java一样
StringUtils.isNotEmpty(x)
答案 0 :(得分:0)
尝试
WHERE NULLIF(field1, '') IS NULL
答案 1 :(得分:0)
我用
where isnull(x, '') <> ''
很多。我发现它更容易理解&#34;比nullif
。
- 编辑---------------------------------------
我错过了他们都和他们在一起。因此,如果所有N个字段必须为非null且不为空,假设所有字段都是字符串(varchars),则应该这样做:
where isnull(field1 + field2 + field3 + ... + fieldN, '') <> ''
首先,将字符串连接在一起:
接下来,结果为isnulled
:
最后,将其与空字符串进行比较:
答案 2 :(得分:0)
对于SQL Server,我会使用COALESCE:
WHERE COALESCE(field1, '') > ''
ISNULL也有效
答案 3 :(得分:0)
如果要排除每个字段为空或空白的行,可以这样做:
WHERE COAlESCE(Field1,Field2,Field3,Field4,Field5,'') <> ''