=demo.query("select EID, NAME+'
'+SURNAME as FULLNAME, GENDER, year(now())-year(BIRTHDAY) as AGE, DEPT from
EMPLOYEE")
=demo.query("select EID, NAME+'
'+SURNAME as FULLNAME, GENDER, year(now())-year(BIRTHDAY) as AGE, DEPT from
EMPLOYEE where year(now())-year(BIRTHDAY)<30")
=demo.query("select count(EID) from
EMPLOYEE where year(now()) - year(BIRTHDAY)-(case when
month(now())<month(BIRTHDAY) then 1 WHEN month(now())=month(BIRTHDAY) and
day(now())<day(BIRTHDAY) then 1 else 0 end)<35")
A4
中这次用比较精确的方法来计算年龄,获得的查询结果和
A3
中的一致,但无法利用已有的结果,而语句也复杂得多。
sum
、
avg
、
max
和
min
等
SQL
函数的使用方法和
count
基本类似。
6. distinct
=demo.query("select FULLNAME, AGE from
(select NAME+' '+SURNAME as FULLNAME, year(now())-year(BIRTHDAY)-(case when
month(now()) < month(BIRTHDAY) then 1 WHEN month(now())=month(BIRTHDAY)
and day(now())<day(BIRTHDAY) then 1 else 0 end) as AGE from EMPLOYEE)
where AGE<35 order by AGE desc, FULLNAME")
=demo.query("select FULLNAME, AGE from
(select NAME+' '+SURNAME as FULLNAME, year(now())-year(BIRTHDAY)-(case when
month(now()) < month(BIRTHDAY) then 1 WHEN month(now())=month(BIRTHDAY)
and day(now())<day(BIRTHDAY) then 1 else 0 end) as AGE from EMPLOYEE)
where AGE<35 and left(FULLNAME, 1)='S'")
可以看到,集算器中,
and
使用操作符
&&
来表示,而且,判断是否相等用两个等号
==
,这和很多程序语言中的习惯相同。与之类似,在集算器中,
or
使用操作符
"||"
,
not
使用操作符
"!"
,
<>
使用操作符
"!="
。
9. like
在使用
like
函数时,不同的数据库,对通配符的使用是不同的,如本例中,用通配符
"%"
来表示零个或多个任意字符,而在某些数据库中,要用通配符
"*"
;而用集算器来处理的话,对任何数据库,语法都是统一的。
10. group