mysql - 如何在 SQL 中对 varchar 列求和?

标签 mysql sql-server-2008 sql-server-2008-r2

我是 SQL 初学者。我需要总结性别列。我的意思是表中有多少男性和多少女性。这就是我尝试过的。

SELECT
SUM(CASE WHEN Gender='Female' THEN Gender ELSE 'Null' END)Gender,
SUM(CASE WHEN Gender='Male' THEN Gender ELSE 'Null' END)Gender
FROM EmployeeDetails;

我收到此错误: 消息 8117,16 级,状态 1,第 2 行 操作数数据类型 nvarchar 对于求和运算符无效。

所以我尝试了以下查询:

Select length(Gender) - length(replace(Gender, ' ', '')) + 1 NumbofWords

来自员工详细信息

它显示为长度不是一个公认的内置函数。 任何帮助将不胜感激。 提前致谢。

最佳答案

SUM + CASE 可以使用,但您需要对数字进行求和,例如:

SELECT
   SUM(CASE WHEN Gender='Female' THEN 1 ELSE 0 END) AS [FemaleNumber],
   SUM(CASE WHEN Gender='Male' THEN 1 ELSE 0 END) AS [MaleNumber]
FROM EmployeeDetails;

SQL Server 2012+

SELECT
  SUM(IIF(Gender='Female', 1, 0)) AS [FemaleNumber],
  SUM(IIF(Gender='Male', 1, 0)) AS [MaleNumber]
FROM EmployeeDetails;

关于mysql - 如何在 SQL 中对 varchar 列求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32495292/

相关文章:

php - 数据库日期 = 今天的日期

sql - 与前几个月建立表格(累计)

c# - 如何在数据更改时更新我的​​ RSS 提要?

sql - 将 READ UNCOMMITTED 与 UNION ALL 一起使用

sql - 计算实际停机时间忽略日期/时间重叠

sql-server-2008-r2 - sql server 将日期转换为字符串 MM/DD/YYYY

php - 使用 PHP 访问 MySQL DB 行数据

php - 交叉引用 2 个表并获得结果

mysql - 返回与属于 wp_users 表中的用户 ID 的元键 wp_usermeta 表关联的元值

sql - 将 SQL Server 数据库从 AWS 迁移到 Azure