【问题标题】:MySQL - Using * in a conditional statementMySQL - 在条件语句中使用 *
【发布时间】:2018-04-10 10:01:38
【问题描述】:

我正在尝试执行以下语句...

SELECT
SUM(CASE WHEN CLG ='A*' THEN 1 END) as A*
From Grades

但是,我收到以下错误...

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 '* 附近使用的正确语法,”

我当然意识到 * 在 select 语句中用于选择表的所有行。但是在我的情况下,我想找到包含 A* 值的记录数。谁能指出我可以做些什么来解决这个错误而不必从我的表中删除 A* 值?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    你需要使用反引号:

    SELECT SUM(CASE WHEN CLG ='A*' THEN 1 END) as `A*`
    From Grades;
    

    其实你可以跳过CASE:

    SELECT SUM(CLG ='A*') as `A*`
    From Grades
    

    【讨论】:

      【解决方案2】:

      您的问题是列别名。不要在列名中使用不适当的字符。做这样的事情:

      SELECT SUM( CLG = 'A*' ) as A_star
      From Grades;
      

      必须处理使用不寻常字符的标识符只是一种痛苦——使查询难以编写和阅读。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-18
        • 1970-01-01
        • 2015-01-10
        • 2018-03-15
        • 1970-01-01
        • 2012-08-17
        • 2014-08-30
        • 1970-01-01
        相关资源
        最近更新 更多