Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

expression #6

Open
Selflocking opened this issue Oct 17, 2023 · 2 comments
Open

expression #6

Selflocking opened this issue Oct 17, 2023 · 2 comments
Assignees
Labels
20分 20分 medium 中等

Comments

@Selflocking
Copy link
Member

Selflocking commented Oct 17, 2023

赛题描述

实现表达式功能。

各种表达式运算是SQL的基础,有了表达式,才能使用SQL描述丰富的应用场景。

这里的表达式仅考虑算数表达式,可以参考现有实现的calc语句,可以参考 表达式解析 ,在SELECT语句中实现。

如果有些表达式运算结果有疑问,可以在MySQL中执行相应的SQL,然后参考MySQL的执行即可。比如一个数字除以0,应该按照NULL类型的数字来处理。

当然为了简化,这里只有数字类型的运算。

赛题地址

https://open.oceanbase.com/train/TopicDetails?questionId=600004&subQesitonId=800018&subQuestionName=expression

往年情况

2022年

  1. 查询中支持运算表达式,这里的运算表达式包括 +-*/。运算只需要考虑整数和浮点数的转换。
  2. 仅支持基本数据的运算即可,不对date字段做考察。 运算出现异常,按照NULL规则处理。
  3. 只会出现在select语句中。
  4. 需要考虑聚合运算。

测试用例示例:

select * from t1,t2 where t1.age +10 > t2.age * 2 + 3-(t1.age +10)/3;
select t1.col1+t2.col2 from t1,t2 where t1.age +10 > t2.age *2 + 3-(t1.age +10)/3;
select min(col1)+avg(col2)*max(col3) from exp_table where id < 10;

https://open.oceanbase.com/train/TopicDetails?questionId=500003&subQesitonId=700065&subQuestionName=expression

2021年

查询中支持运算表达式,这里的运算表达式包括 +-*/。

仅支持基本数据的运算即可,不对date字段做考察。

运算出现异常,按照NULL规则处理。

只需要考虑select。

https://open.oceanbase.com/train/TopicDetails?questionId=200001&subQesitonId=400015&subQuestionName=expression

@Selflocking
Copy link
Member Author

image

@Selflocking Selflocking self-assigned this Nov 5, 2023
@Selflocking
Copy link
Member Author

IMG_20231106_024939

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
20分 20分 medium 中等
Projects
None yet
Development

No branches or pull requests

1 participant