实际上,当解析器遇到作为内置函数名称的单词时,它必须确定该名称是表示函数调用还是对标识符的非表达式引用例如表名或列名。考虑以下查询 -
1. Select sum(salary) from employee;
2. Create table sum (i int);
在第一个查询中,SUM 是对函数调用的引用,在第二个查询中,它是对表名称的引用。
解析器遵循以下规则来区分它们的名称是否是用作函数调用或非引用上下文中的标识符 -
- Rule1 - 将名称用作函数调用在表达式中,名称和后面的字符(括号字符)之间不能有空格。
- Rule2 - 相反,使用函数名称作为标识符,后面不能紧跟括号。