任何程序语言,都有一套属于它的核心函数。所以在你认识SQL这门语言之前,我们需要先了解下它的语言特点。
那今天我们来归纳下,SQL的核心函数有哪些。
一、数值函数: 任何语言都离不开数字计算,何况是数据库语言呢。
1.绝对值和符号函数
格式:ABS(’数值表达式’)
SIGN(’数值表达式’)
例如:ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=0
2.求平方根表达式
格式:SQRT(’数值表达式’)
例如:SQRT(16)=4,它与开二分之一次方等同.
3.圆周率函数
格式:PI()
4.求整数函数
格式:INT(’数值表达式’)返回数值表达式的整数部分
CEILING(’数值表达式’)返回大于或等于表达式的最小整数
FLOOR(’数值表达式’)返回小于或等于表达式的最大整数
例如:
INT(5.8)=5.8,INT(-7.8)=-7,CEILING(6.4)=7,CEILING(-5.9)=-5
FLOOR(9.9)=9
5.四舍五入函数
格式:ROUND(’数值表达式1’,’数值表达式2’)
功能:返回制定表达式在制定位置四舍五入的结果
例如:
ROUND(345.345,2)=345.35,ROUND(345.345,1)=345.3,ROUND(345.345,0)=345,ROUND
(345.345,-1)=350
6.求余函数
格式:MOD(’数值表达式1’,’数值表达式2’)
例如:
MOD(10,3)=1 MOD(10,-3)=-2 MOD(-10,3)=2 MOD(-10,-3)=-1
求余数的规律:
1.首先按照两数的绝对值求余
2.表达式1的绝对值大于表达式2的绝对值,则余数为表达式1的值
3.余数取表达式1的正负号
4.若两数异好号,余数在加上表达式2的值为最终的结果
7. 求最大值和最小值函数
MAX(数值表达式列表)
MIN (数值表达式列表)
例如:MAX(2,3,5)=5 MAX(’2’,’12’,’05’)=2 MAX(’汽车’,’飞机’,’轮船’)
字符串比较的规律:
字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了.如果相等在进行第二个字母的比较,以次
类推.
二、字符函数 :字符串处理。
1.求字符串长度函数
格式:LEN(’字符表达式’)
功能:返回制定字符表达式的长度,即所包含的字符个数.函数值为数值型
例如:X=“中文Visual FoxPro6.0” 则LEN(X)=20
2.大小写转换函数
格式:LOWER(’字符表达式’)
UPPER(’字符表达式’)
功能:LOWER将制定表达式值中的大写字母转换成小写字母,其他字符不变
UPPER将指定表达式值中的小写字母转换成大写字母,其他字符不变.
例如:LOWER(’X1y2A’)=x1y2a UPPER(’n=1’)=N=1
3.空格字符串生成函数
格式:SPACE(’字符表达式’)
功能:返回指定数目的空格组成的字符串.
4.删除前后空格函数
格式:TRIM(’字符表达式’)
LTRIM(’字符表达式’)
ALLTRIM(’字符表达式’)
功能:TRIM():返回指定字符表达式值去掉尾部空格后形成的字符串
LTRIM():返回指定字符表达式值去掉前导空格后形成的字符串
ALLTRIM():返回指定字符表达式值去掉前导空格和尾部空格后形成的字符串.
例如:STORE SPACE(1)+”TEST”+SPACE(3) TO SS
?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)
LEN(SS)=8,LEN(TRIM(SS))=5,LEN(LTRIM(SS))=7,LEN(ALLTRIM(SS))=4
5.取子串函数
格式:LEFT(’字符表达式’,’长度’)
RIGHT(’字符表达式’,’长度’)
SUBSTR(’字符表达式’,’起始位置’,’长度’)
功能:LEFT(): 从指定表达式值的左端取一个指定长度的子串作为函数值.
RIGHT():从指定表达式值的右端取一个指定长度的子串作为函数值.
SUBSTR():从指定表达式值的起始位置取指定长度的子串作为函数值.
例如:STORE “GOOD BYE!” TO X
LEFT(X,2)=GO,SUBSTR(X,6,2)+SUBSTR(X,6)=BYBYE!,RIGHT(X,3)=YE!
6.计算子串出现次数函数
格式:OCCURS(’字符表达式1’,’字符表达式2’)
功能:返回第一个字符串在第二个字符串中出现的次数.
例如:STORE ‘abracadabra’ TO S
OCCURS(’a’,S)=5, OCCURS(’b’,S)=2, OCCURS(’c’,S)=1, OCCURS(’e’,S)=0
7.求子串位置函数
格式:AT(’字符表达式1’,’字符表达式2’,’数值表达式’)
ATC(’字符表达式1’,’字符表达式2’,’数值表达式’)
功能:验证表达式1是否是表达式2的子串,如果是,返回表达式1的首字符在表达式2中的位置,若不是,则
为0
ATC()与AT()的功能类似,但比较时不区分大小写
例如: STORE”This is Visual FoxPro” TO X
AT(“fox”,X)=0,ATC(“fox”,X)=16,AT(“is”,X,3)=10,AT(“xo”,X)
8.子串替换函数
格式:STUFF( ‘字符表达式1’,’起始位置’,’长度’,’字符表达式2’) 功能:用’字符表达式2’的值替换’字符表达式1’中由’起始位置’和’长
度’指明的一个子串.
例如:STORE ‘GOOD BYE!’ TO S1
STORE ‘MORNING’ TO S2
?STUFF(S1,6,3,S2)=GOOD MORNING!
?STUFF(S1,1,4,S2)=MORNING BYE!
9.字符替换函数
格式:CHRTRAN(’字符表达式1’,’字符表达式2’,’字符表达式3’)
功能:当第一个字符中的一个或多个字符与第二个字符串中的某个字符相匹配时,就用第三个字符中的对应字符
(相同位置)替换这些字符.如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,因而没有对
应字符,那么第一个字符串中相匹配的各字符将会被铲除.如果第三个字符串包含的字符个数多于第二个字符串
包含的字符个数,多于字符被删掉.
例如:CHRTRAN(“ABACAD”,”ACD”,”X12”)=XBX1X2
CHRTRAN(“计算机ABC”,”计算机”,”电脑”)=电脑ABC
CHRTRAN(“大家好!”,”大家”,”您”)=您好!
总结:第二个表达式没有的照写,第三个表达式没有的去掉.
10.字符串匹配函数
格式:LIKE(’字符表达式1’,’字符表达式2’)
功能:比较两个字符串对应位置上的字符,若所有对应字符相匹配,函数返回逻辑真(.T.)否则返回逻辑假(.
F.)
‘字符表达式1’中可以包含通配符和?.可与任何数目的字符相匹配,?可以与任何单个字符相匹配.
例如:
STORE “abc” to x
STORE “abcd” to y
LIKE(“ab”,x)=.T. LIKE(“ab”,y)=.T. LIKE (x,y)=.F.
LIKE(“?b?”,x)=.T. LIKE(“ABc”,x)=.F.
三、日期和时间函数
1.系统日期和时间函数:
格式:DATE():返回当前系统日期,函数值为日期型
TIME():以24小时制 、HH:MM:SS格式返回当前系统时间(字符型)
DATETIME():返回当前系统日期时间,函数值为日期时间型
2. DATEADD取某个月的某一天
例如:
取当月的第一天:SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
上个月的第一天:SELECT DATEADD(mm, DATEDIFF(mm,0,getdate())-1, 0)
当月的最后一天:SELECT DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
上个月的最后一天:SELECT DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate()), 0))
假如你要计算这个季度的第一天,这个例子告诉你该如何做:SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
好文章,内容一针见血.