lealone / Lealone

比 MySQL 和 MongoDB 快10倍的 OLTP 关系数据库和文档数据库
Other
2.44k stars 513 forks source link

case when 返回数据类型问题 #177

Closed ContyChen closed 1 year ago

ContyChen commented 1 year ago

模拟SQL: SELECT TABLE_CATALOG, COUNT(*) TABLE_COUNT, SUM(CASE WHEN TABLE_TYPE='STANDARD_TABLE' THEN 1 ELSE 0 END) STABLE_COUNT FROM INFORMATION_SCHEMA.TABLES GROUP BY TABLE_CATALOGL;

SQL 错误 [90015] [90015]: SUM or AVG on wrong data type for "SUM(CASE WHEN (TABLE_TYPE = 'STANDARD_TABLE') THEN 1 ELSE 0 END)" [90015-2]

执行以上sql报错,函数嵌套的问题还是case when 返回的类型问题?

手工转换一下数据类型可以运行 SUM(CONVERT(CASE WHEN TABLE_TYPE='STANDARD_TABLE' THEN 1 ELSE 0 END,INT))

image

codefollower commented 1 year ago

问题已经修复,感谢报告 bug。

ContyChen commented 1 year ago

效率真高