首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL具有子句不处理‘’nor‘",而不使用AS语句

MySQL具有子句不处理‘’nor‘",而不使用AS语句
EN

Stack Overflow用户
提问于 2020-01-25 19:00:39
回答 1查看 50关注 0票数 2
代码语言:javascript
复制
SELECT 
    department_id, ROUND(MIN(salary), 2) AS 'Min Salary'
FROM
    employees
GROUP BY department_id
HAVING 'Min Salary' > 800;

这似乎不起作用,但取而代之的是:

代码语言:javascript
复制
SELECT 
    department_id, ROUND(MIN(salary), 2) AS min_salary
FROM
    employees
GROUP BY department_id
HAVING min_salary > 800

效果很好。有人能给我一个答案吗?为什么我不能用‘’或“‘,但是我必须使用列名?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-25 19:09:24

HAVING 'Min Salary' > 800

标识符周围的单引号将其转换为文字字符串。因此,这个条件实际上是检查字符串'Min Salary'是否大于800。当转换为一个数字时,'Min Salary'变成0,这比800小。这不是你所期望的。

另外,请注意,MySQL对待双引号就像对待单引号一样-而在其他一些数据库(如Oracle或Postgres )中,它们用于引号标识符。

如果您想要一个包含空格的标识符,那么您需要使用backticks,这就是MySQL引用标识符的方式。所以:

代码语言:javascript
复制
SELECT department_id, ROUND(MIN(salary), 2) AS `Min Salary`
FROM employees
GROUP BY department_id
HAVING `Min Salary` > 800;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59912482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档