今天一天写了一个sql。写完后貌似比较出乎带我的同事的意料。不知是他低估了我得水平,还是真的这个sql就这么难。姑且放置一边。
oracle以前没有接触过。现在所有的都是现学。今天学到的主要有以下几点:
1. dual表查询。能查询单个字段。如系统时间。
2. to_char(parameter1,format1)用于将parameter1转变成format1的格式。
3. case when分支结构。
该结构以case开头,end结尾。使用
case
when A then A1
when B then B1
else C1
end
格式。其中,when后面是表达式或者值,或者判断语句。then后面跟着的是输出语句。
Note:经过测试,该查询方式会降低查询效率。不建议使用。
4. with tableName as(expression) select * from tableName
这个是我这两天发现的最有效率的一个使用方法。 相当于子查询。经测试,比原先单用union时提高了不少。union时同样的查询,所需时间为2m 45s;现在用with语句,时间为3s。 差距相当大。