今天把SQL详细的整理一遍,然后在研究下在GIS中的运用。
1.基本查询
select * from table where 条件
查询结果数字右对齐,字符左对齐。选择字段顺序决定显示顺序。查询的运算结果是临时的,如果需要保存,要在表达式后跟别名。
select a+1 b from table
对空字段的操作,用IS NULL 而非 =NULL 。所以数据注意大小写的统一。
union 去掉重复,而union all全部合并;intersect查询相同;minus 结果第一个表存在而第二个表不存在;in(限定内容);between A and B,包括边界。
2.基本函数
计数:select count(*) from tabel where 条件
求和:select sum(A) from tabel
平均:select AVG(A) from tabel
最大/小:MAX,MIN
方差:VARIANCE()
标准差:STDDEV
日期类型
增加月份:select endmonth original ,ADD_MONTHS(endmonth,2) from tabel 截止日期推迟2个月
月份的最后一天查询:LAST_DAY(enddate)
闰年特例:select distinct last_day(1-2-95) NO_LEAP,last_day(1-2-96) LEAP from tabel
两日期间的月份间隔:months_between(startdate,enddate)
新时间调整:NEW-TIME
新日期:select startday,next_day(startday,'FRIDAY') from tabel
系统时间:select distinct SYSDATE from tabel
数学函数
绝对值:ABS
返回最大或最小的整数:FLOOR(比初始参数相等或小的最大整数),CEIL(比给定参数相等或大的最小整数)
三角函数:COS,COSH,SIN,SINH,TAN,TANH
指数:EXP(A)
对数:LN(A),LOG(B,10)
求余:MOD(A,B)
求幂:POWER(A,B) A为底数,B为指数
正负判断:SIGN(A),正为1,负为-1,零为0
平方根:SQRT(A)
数值与字符的对等:CHR()
字符连接:CONCAT(A,B)
首字母大写,其余小写:INITCAP
大小写转换:UPPER ,LOWER
前后扩充:前扩充LPAD(A,B,C),后扩充RPAD(A,B,C)A为初始字符,B为扩充长度,C为扩充内容,默认为空格
删除字符:删除空格RTRIM(A),删除字符LTRIM(A,B),A为初始字符,B为删除字符
替换:REPLACE(A,B,C)A为初始字段,B为查询内容,C为替换内容,若为空,仅删除查询内容
提取:SUBSTR(A,B,C)A为初始字段,B为提取的起始字符位置,C为提取长度,若B为空,则提取最后C个字符(空格不算)
转换:TRANSLATE(A,B,C)A为初始字段,B为目标字符串,C为转换字符串
字符查找:INSTR(A,B,C,D)A为初始字段,B为匹配内容,C为查找的起始位置,D为返回个数,一般为1
字符长度:LENGTH(RTRIM(A)),先去掉空格
转换函数
转字符:TO_CHAR
转数值:TO_NUMBER
返回表达式最大最小:GREATEST,LEAST
返回当前用户名:select user from table