【发布时间】:2020-06-29 18:02:07
【问题描述】:
SELECT BVDID, max(case when CompanynameLatinalphabet='' then NULL else CompanynameLatinalphabet end) as CompanynameLatinalphabet, idField1, idField2 FROM `imported_companies_BVD` where BVDID=103327
group by BVDID, CompanynameLatinalphabet
大家好。在下面的声明中,我得到:
BVDID |公司名称拉丁字母 | idField1 | idField2 103327 |空 | 100 | 1 103327 | CASEIFICIO SOCIALE DI RAV... |空 | 1如何防止检索到带有 NULL 的行?我不能在 where 语句中使用 IS NOT NULL,因为行中有其他列有数据。
整个想法是合并整个事物,两行中的值应该合并为单行。 如果您能提供帮助,谢谢!
预期的结果应该是:
BVDID |公司名称拉丁字母 | idfield1 | idfield2 103327 | CASEIFICIO SOCIALE DI RAV... | 100 | 1【问题讨论】:
-
我不能在 where 语句中使用 IS NOT NULL,因为该行中有其他列有数据。 跳过该行的实际完整标准是什么?你的意思是你想跳过那些有
CompanynameLatinalphabetNULL 和NULL 的行吗? -
那么你期望的输出是什么?
-
问题是存在混合值的行。我的意思是,相同的两行可以有一个 ID 为空且 ID 不为空。所以你会说“忽略 where 子句中 id 为 null 的那个。但是该行可以有有用的列并且不应该被忽略,所以整个想法是将所有不为 null 的内容合并到一行中。
-
您的预期结果包含 2 列:idField1 和 idField2,查询中未提及。
-
一个 BVID 是否存在超过 1 个非空和非空 CompanynameLatinalphabets 的情况?