草庐IT

coalesce

全部标签

sql - MySQL 中的 OR 非空约束

在MySQL中创建非NULL约束的最佳方法是什么,这样fieldA和fieldB不能都为NULL。我不在乎其中任何一个本身是否为NULL,只要另一个字段具有非NULL值即可。如果它们都具有非NULL值,那就更好了。 最佳答案 这不是直接回答您的问题,而是一些附加信息。在处理多个列并检查是否全部为空或一个不为空时,我通常使用COALESCE()-如果列表增长,它会简短、易读且易于维护:COALESCE(a,b,c,d)ISNULL--TrueifallareNULLCOALESCE(a,b,c,d)ISNOTNULL--Trueifa

mysql,ifnull vs coalesce,哪个更快?

如果已知只有两个值可以作为列结果的候选值,ifnull(a,b)asa_or_b_1和coalesce(a,b)asa_or_b_2将给出相同的结果。但哪个更快?搜索时我发现thisarticle,表示ifnull更快。但这是我找到的唯一一篇文章。对此有何看法?提前致谢:) 最佳答案 我的观点是你应该为你的使用做基准。我怀疑会有很大的不同。请记住,虽然单一的基准可能表明某个基准稍好一些,但数据随时间的变化可能会改变该结果。另请注意,COALESCE自1992年以来一直是标准SQL的一部分-我不确定IFNULL是否在任何标准中。Ada

mysql,ifnull vs coalesce,哪个更快?

如果已知只有两个值可以作为列结果的候选值,ifnull(a,b)asa_or_b_1和coalesce(a,b)asa_or_b_2将给出相同的结果。但哪个更快?搜索时我发现thisarticle,表示ifnull更快。但这是我找到的唯一一篇文章。对此有何看法?提前致谢:) 最佳答案 我的观点是你应该为你的使用做基准。我怀疑会有很大的不同。请记住,虽然单一的基准可能表明某个基准稍好一些,但数据随时间的变化可能会改变该结果。另请注意,COALESCE自1992年以来一直是标准SQL的一部分-我不确定IFNULL是否在任何标准中。Ada

字符串上的 MySQL、IFNULL()、COALESCE() 未替换

我的声明应该用'noname'替换每个emptytitle_column,但它没有:SELECTCOALESCE(main_table.title_column,'noname')AStitleFROMmain_table;IFNULL()的行为方式相同。我做错了什么? 最佳答案 COALESCE和IFNULL仅替换NULL值,您的表似乎包含空字符串:SELECTCOALESCE(NULLIF(main_table.title_column,''),'noname')AStitleFROMmain_table;

字符串上的 MySQL、IFNULL()、COALESCE() 未替换

我的声明应该用'noname'替换每个emptytitle_column,但它没有:SELECTCOALESCE(main_table.title_column,'noname')AStitleFROMmain_table;IFNULL()的行为方式相同。我做错了什么? 最佳答案 COALESCE和IFNULL仅替换NULL值,您的表似乎包含空字符串:SELECTCOALESCE(NULLIF(main_table.title_column,''),'noname')AStitleFROMmain_table;

mysql - COALESCE() 用于空白(但不是空)字段

我有两个字段正在与MySQL的函数COALESCE()进行比较.例如,COALESCE(Field1,Field2)。问题是,Field1有时为空但不为空;因为它不是nullCOALESCE()选择Field1,即使它是空白的。在那种情况下,我需要它来选择Field2。我知道我可以在查询中写一个if-then-else(CASE)语句来检查这个,但是有没有像COALESCE()这样的简单函数用于blank-but-not-空字段? 最佳答案 SELECTIFNULL(NULLIF(Field1,''),Field2)如果Field1

mysql - COALESCE() 用于空白(但不是空)字段

我有两个字段正在与MySQL的函数COALESCE()进行比较.例如,COALESCE(Field1,Field2)。问题是,Field1有时为空但不为空;因为它不是nullCOALESCE()选择Field1,即使它是空白的。在那种情况下,我需要它来选择Field2。我知道我可以在查询中写一个if-then-else(CASE)语句来检查这个,但是有没有像COALESCE()这样的简单函数用于blank-but-not-空字段? 最佳答案 SELECTIFNULL(NULLIF(Field1,''),Field2)如果Field1

mysql - 如何在 MySQL 中使用 Coalesce

这里有点帮助。我真的不明白如何在MySQL中使用这种合并我已阅读谷歌结果中howtousecoalsece的第1页结果中的所有页面。我知道它的含义,它返回它遇到的第一个非空值,否则返回null。但对我来说还是很模糊。我怎么会看到返回多个值的查询?不只是返回的第一个非空值吗?它如何决定以哪一列为基础?coalesce(column1,column2)?如果第一列为空而另一列不为空怎么办?或者如果我错了或者我的语法错了,我该如何正确写?有人可以提供一个非常好的简单示例来说明如何使用它吗?以及何时需要使用。 最佳答案 Howcomeisa

mysql - 如何在 MySQL 中使用 Coalesce

这里有点帮助。我真的不明白如何在MySQL中使用这种合并我已阅读谷歌结果中howtousecoalsece的第1页结果中的所有页面。我知道它的含义,它返回它遇到的第一个非空值,否则返回null。但对我来说还是很模糊。我怎么会看到返回多个值的查询?不只是返回的第一个非空值吗?它如何决定以哪一列为基础?coalesce(column1,column2)?如果第一列为空而另一列不为空怎么办?或者如果我错了或者我的语法错了,我该如何正确写?有人可以提供一个非常好的简单示例来说明如何使用它吗?以及何时需要使用。 最佳答案 Howcomeisa

mysql - 执行 concat_ws 和 collect_list 后,Hive Coalesce 函数未返回预期结果

我需要在表服务中转换列服务名称,然后合并值。services:useridservicename1A2B2C3B1C45C我正在尝试的查询是SELECTuserid,COALESCE(a,b,c)ASservicenameFROM(SELECTuserid,concat_ws('',a)ASa,concat_ws('',b)ASb,concat_ws('',c)AScFROM(SELECTuserid,collect_list(a.group_map['A'])ASa,collect_list(a.group_map['B'])ASb,collect_list(a.group_map[