MySQL错误代码:1048:列不能为空

时间:2016-06-23 14:20:57

标签: mysql

我有一个问题:

  SELECT 
    vendors_id,
    name,
    amount
  FROM .... 

当内部查询

Error Code: 1048
Column 'vendors_id' cannot be null

返回数据,结果返回成功。如果内部查询仅返回NULL:

inner query result

整个查询返回错误:

void Application_Start(object sender, EventArgs e)
{
    log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/Log4Net.config")));
    var log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    log.Info("Logging started");       
}

如果内部查询返回所有NULL,则如何返回0?

2 个答案:

答案 0 :(得分:1)

您想要的功能称为COALESCE。 COALESCE获取参数列表并返回该列表中的第一个非NULL值。例如查询

SELECT COALESCE(vendors_id, 0), COALESCE(name, ''), COALESCE(amount, 0)...
  FROM vendors...

将返回非NULL列值或每列的指定替换值。

答案 1 :(得分:0)

您可以使用以下功能:

ISNULL(colName,'new value') AS

例如:

Select A.col1,ISNULL(B.col2,'0') as col2 from Table1 A INNER JOIN Table2 B ON A.cod1=B.cod1