假设 value 是一个 int 并且以下查询是有效的:
SELECT blah
FROM table
WHERE attribute = value
尽管 MAX(expression) 返回 int,但以下内容无效:
SELECT blah
FROM table
WHERE attribute = MAX(expression)
当然,使用子查询可以达到预期的效果,但我的问题是为什么 SQL 是这样设计的——有什么理由不允许这种事情吗?来自编程语言的学生总是可以通过返回该类型的函数调用来替换数据类型,发现这个问题令人困惑。有没有可以给他们的解释,而不仅仅是说“就是这样”?