计算一行中 NULL 的数量
有没有办法获取指示行中 NULL 字段数量的列?这将在 SELECT 语句中。
例如:
Field1 Field2 Num_Null
-----------------------
NULL "A" 1
更新:我想要这个查询,以便我可以根据给定书籍的附属销售数量进行排序。因此,无论是哪一个,拥有 3 个附属机构的排序都会高于拥有 2 个附属机构的排序。我的数据库中有大约七个附属机构,而且这个数字还会增长。因此,任何要求指定每个附属字段的查询都可能太长
表:
Affiliates_Cache - 主键是 Affiliate_ISBN,包含各个附属机构的图书价格(如果不可用则为 NULL)。 Affiliates_Cache 是我想要计算 NULL 数量的缓存
Is there a way to get a column indicating the number of NULL fields in a row? This would be within a SELECT statement.
For Example:
Field1 Field2 Num_Null
-----------------------
NULL "A" 1
UPDATE: I want this query so I can sort based on how many Affiliates sales there are of a given Book. So having 3 affiliates would be sorted higher than having 2, regardless of which ones. There are about seven affiliates in my database, and that's subject to grow. So any query requiring that each Affiliate field be specified would probably be too long
The table:
Affiliates_Cache - Primary key is Affiliate_ISBN, has the prices of the book on various affiliates (NULL if its not available). Affiliates_Cache is the one where i want to count the number of NULLs
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不确定是否有更简洁的方法,但这应该有效:
测试用例:
结果:
更新:进一步更新的问题:
如果表中的列看起来像
affiliate_1
、affiliate_2
等,这很少是一个好主意,因为您会将数据与元数据混合。一般来说,建议的修复方法是使用另一个依赖表来表示用户与附属机构的关系,如下例所示:然后按附属机构数量对
users
表进行排序,如下所示:优点很多,但最重要的是,它使上述查询易于编写,并且足够灵活,可以与任意数量的附属机构一起使用(不受您分配的列数的限制)。
I'm not sure if there are neater methods, but this should work:
Test case:
Result:
UPDATE: Further to the updated question:
If you have columns in your table that look like
affiliate_1
,affiliate_2
, etc, this is rarely a good idea as you would be mixing data with the metadata. In general, a recommended fix is to use another dependent table for the users-to-affiliates relationships, as in the following example:Then sorting the
users
table by the number of affiliates will look something like this:The advantages are plenty, but most importantly it makes queries such as the above easy to write, and flexible enough to work with any number of affiliates (an not limited by the number of columns you allocated).
这个查询怎么样? (参考大牛给出的测试用例。)
How about this Query ? (Referring to the Test case given by Daniel.)
保持简单和标准:
完整的测试用例:
Keep it simple and Standard:
Test case in full: