Mysql 如何在Select语句中选择count()

Mysql 如何在Select语句中选择count(),mysql,sql,Mysql,Sql,经过几个小时的努力,我终于接受了需要帮助的条件 我试图从表a中选择一行,然后计算该行中非空的单元格数 我知道这是错误的,但它传达了我的意图 SELECT COUNT(colName), (SELECT (column1, column2, column3, column4) AS colName FROM TableA WHERE location= location) AS colCount FROM TableA WHERE colName IS NO

经过几个小时的努力,我终于接受了需要帮助的条件

我试图从表a中选择一行,然后计算该行中非空的单元格数

我知道这是错误的,但它传达了我的意图

SELECT COUNT(colName), 
    (SELECT (column1, column2, column3, column4) AS colName 
     FROM TableA 
     WHERE location= location) 
AS colCount
FROM TableA  
WHERE colName IS NOT NULL  

可能有一种更巧妙的方法,但暴力的方法是:

SELECT
   location, 
    CASE WHEN column1 IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN column2 IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN column3 IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN column4 IS NULL THEN 0 ELSE 1 END
   AS colCount 
 FROM TableA 

可能有一种更巧妙的方法,但暴力的方法是:

SELECT
   location, 
    CASE WHEN column1 IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN column2 IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN column3 IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN column4 IS NULL THEN 0 ELSE 1 END
   AS colCount 
 FROM TableA 

SELECT id, 
       (`column1` IS NOT NULL) + 
       (`column2` IS NOT NULL) + 
       (`column3` IS NOT NULL) as notnull
FROM Table1

SELECT id, 
       (`column1` IS NOT NULL) + 
       (`column2` IS NOT NULL) + 
       (`column3` IS NOT NULL) as notnull
FROM Table1

向我们显示数据库模式、示例数据、当前和预期输出。请阅读,这里是学习如何提高问题质量和获得更好答案的好地方。您的代码不能传达您的意图。示例数据和期望的结果将显示给我们db模式、示例数据、当前和预期输出。请阅读,这里是学习如何提高问题质量和获得更好答案的好地方。您的代码不能传达您的意图。示例数据和所需结果将是。您不需要mysql上的
CASE
字段1不为空返回0或1个提示。您不需要mysql上的
CASE
字段1不为空返回0或1个提示。您不需要mysql上的
CASE
字段1不为空返回0或1个提示1@JuanCarlosOropeza我总是喜欢明确,因为我从不确定
true
是1还是0。is easy 0是false,其他一切都是真实的您不需要mysql上的
CASE
字段1不为空返回0或1@JuanCarlosOropeza我总是喜欢明确,因为我从不确定
true
是1还是0。这很简单,而且行之有效。感谢所有也给出答案的人Hanks Juan。这很简单,而且行之有效。感谢所有给出答案的人