SQL内置函数大全

合集下载

SparkSQL内置函数--whenotherwise

SparkSQL内置函数--whenotherwise

SparkSQL内置函数--whenotherwise [root@centos00 ~]$ cd hadoop-2.6.0-cdh5.14.2/[root@centos00 hadoop-2.6.0-cdh5.14.2]$ sbin/hadoop-daemon.sh start namenode[root@centos00 hadoop-2.6.0-cdh5.14.2]$ sbin/hadoop-daemon.sh start datanode[root@centos00 hadoop-2.6.0-cdh5.14.2]$ sbin/yarn-daemon.sh start resourcemanager[root@centos00 ~]$ cd /opt/cdh5.14.2/hive-1.1.0-cdh5.14.2/[root@centos00 hive-1.1.0-cdh5.14.2]$ bin/hive --service metastore &[root@centos00 ~]$ cd /opt/cdh5.14.2/spark-2.2.1-cdh5.14.2/[root@centos00 spark-2.2.1-cdh5.14.2]$ sbin/start-master.sh[root@centos00 spark-2.2.1-cdh5.14.2]$ sbin/start-slaves.shscala> spark.sql("create table mydemo(id int, name string, gender string)")res0: org.apache.spark.sql.DataFrame = []scala> spark.sql("insert into mydemo values(1, 'Jack', 'M'),(2, 'Judy', 'F')")res1: org.apache.spark.sql.DataFrame = []scala> spark.sql("select * from mydemo").show(false)+---+----+------+|id |name|gender|+---+----+------+|1 |Jack|M ||2 |Judy|F |+---+----+------+scala> var ds = spark.table("mydemo")ds: org.apache.spark.sql.DataFrame = [id: int, name: string ... 1 more field]scala> ds = ds.withColumn("flag",when($"gender" === "M",true).otherwise(false))ds: org.apache.spark.sql.DataFrame = [id: int, name: string ... 2 more fields]scala> ds.show(false)+---+----+------+-------+|id |name|gender|flag|+---+----+------+-------+|1 |Jack|M |true ||2 |Judy|F |false |+---+----+------+-------+scala> var df = Seq(| (1, "regular"),| (2, "Unknown")).toDF("id", "size")df: org.apache.spark.sql.DataFrame = [id: int, size: string]scala> df = df.withColumn("flag",when($"size".isin(Array[String]("regular"):_*),0D).otherwise($"size"))df: org.apache.spark.sql.DataFrame = [id: int, size: string ... 1 more field]scala> df.show(false)+---+-------+-------+|id |size |flag |+---+-------+-------+|1 |regular|0.0 ||2 |Unknown|Unknown|+---+-------+-------+。

SQL内置函数大全

SQL内置函数大全

upper,将字符串中每个小写字母转换为大写字母 initcap,将字符串中每个词的首写字母转换成大写 replace,将字符串中的某一组字符转换成其他字符,例replace(col,”each”,”eve”) substr,返回字符串中的某一部分,例substr(col,1,2) substring,返回字符串中的某一部分,例substring(col,from 1 to 4) lpad,使用lpad函数已用重复次数达到必要次数的字符序列在左边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。 举例:字段 col 为char(15)类型,select lpad(col,21,”_”) from tab_name则显示为在col前加上六个_。 Rpad,使用rpad函数已用重复次数达到必要次数的字符序列在右边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。 举例:字段col为char(15)类型,select rpad(col,21,”_”) from tab_name则显示为在col后边加上六个_。 10、其他函数: hex,返回表达式的十六进制数 round,返回表达式的四舍五入值 trunc,返回表达式的截断值 length,计算表达式的长度 user,返回执行查询的用户的用户名(登陆帐户名) today,返回当前系统日期 dbservername,返回数据库服务器的名称,同sitename dbinfo,返回数据库的相关信息 decode,函数来将一个具有一个值的表达式转换为另一个值 decode(test,a,a_value,b,b_value,c,c_value……),decode函数不支持TEXT和BYTE类型。 Nvl,来将求值为空的表达式转化为另一个想要指定的值。 另外还可以在select语句中使用存储过程,如select spl($test) from tab_name 二、IDS内部函数 1、DBSERVERNAME 返回数据库服务器名 let tmp_char=DBSERVERNAME 2、SITENAME 返回数据库服务器名 let tmp_char=SITENAME 说明:两者功能相同; 3、DBINFO(‘SPECIAL_KEYWORD') 返回只关键字值 例子1:返回数据中每个表的DBSPACE名称 select dbinfo('dbspace',partnum),tabname from systables where tabid>99 and tabtype='T' (OK) 例子2:返回任何表中插入的最后一个SERIAL值 select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1 例子3:返回最后一个SELECT,INSERT,UPDATE,DELETE或EXECUTE PROCEDURE语句处理的行数; select dbinfo('sqlca.sqlerrd2') from systables where tabid=1; 10. SQL函数大全 --聚合函数 select avg(distinct price) --算平均数from title where type='business' select max(ytd_sales) --最大数from titles select min(ytd_sales) --最小数from titles select type,sum(price),sum(advance) --求和

SQL的一些内置函数

SQL的一些内置函数

SQL的⼀些内置函数CHARINDEX⽤于查找字符串A中是否包含字符串B。

返回值是字符串B在字符串A中的位置(计数从1开始),若B中没有A,则返回0。

基本语法如下:CHARINDEX ( expressionToFind , expressionToSearch , start_location)1. expressionToFind :⽬标字符串,就是想要找到的字符串,最⼤长度为8000 。

2. expressionToSearch :⽤于被查找的字符串。

3. start_location:开始查找的位置,可为空(为空时默认从第⼀位开始查找)返回值是从⾸位字符开始计数。

案例如下:--查询字母d在字符串中的位置select charindex('d','abcdefgh') as A,--默认从第⼀位开始检查charindex('d','abcdefgh',3) as B,--从第三位开始检查charindex('d','abcDefgh' COLLATE Latin1_General_CS_AS) as C,--区分⼤⼩写charindex('d','abcDefgh'COLLATE Latin1_General_CI_AS) as D--不区分⼤⼩写PATINDEX⽤于查找字符串A中是否包含字符串B(⽀持模糊查询)。

返回值是字符串B在字符串A中的位置(计数从1开始),若B中没有A,则返回0。

基本语法如下:PARTINDEX ( expressionToFind , expressionToSearch)1. expressionToFind :⽬标字符串,就是想要找到的字符串,最⼤长度为8000 。

2. expressionToSearch :⽤于被查找的字符串。

返回值是从⾸位字符开始计数。

SparkSQL内置函数

SparkSQL内置函数

SparkSQL内置函数Spark SQL内置函数官⽹API:平常在使⽤mysql的时候,我们在写SQL的时候会使⽤到MySQL为我们提供的⼀些内置函数,如数值函数:求绝对值abs()、平⽅根sqrt()等,还有其它的字符函数、⽇期函数、聚合函数等等。

使我们利⽤这些内置函数能够快速实现我们的业务逻辑。

在SparkSQL⾥其实也为我们提供了近两百多种内置函数,我们通过import org.apache.spark.sql.functions._导⼊内置函数包,来使⽤。

也可以在SQL语句中直接使⽤。

SparkSQL内置函数分类:聚合函数、集合函数、⽇期函数、数学函数、混杂函数、⾮聚合函数、排序函数、字符串函数、UDF函数和窗⼝函数这10类函数。

1 内置函数的使⽤使⽤内置函数的⽅式有两种,⼀种是通过编程的⽅式的使⽤,另⼀种是通过SQL的⽅式使⽤。

例如:我们有如下数据,想要使⽤SparkSQL内置函数lower()来将名字全部转为⼩写+----+---+-----------+|name|age| phone|+----+---+-----------+|Ming| 20|155********||hong| 19|132********|| zhi| 21|155********|+----+---+-----------+以编程的⽅式使⽤内置函数import org.apache.spark.sql.functions._df.select(lower(col("name")).as("name"), col("age"), col("phone")).show()以SQL的⽅式使⽤df.createOrReplaceTempView("people")spark.sql("select lower(name) as name,age,phone from people").show()2 UDF函数的使⽤有的时候,SparkSQL提供的内置函数⽆法满⾜我们的业务的时候,我们可以使⽤过UDF函数来⾃定义我们的实现逻辑。

SQLServer内置函数

SQLServer内置函数

SQLServer内置函数类型转换函数cast和convert--cast⼀般更容易使⽤,convert的优点是可以格式化⽇期和数值select CAST('123'as int) -- 123select CONVERT(int, '123') -- 123select CAST(123.4as int) -- 123select CONVERT(int, 123.4) -- 123select CAST('123.4'as int) --失败select CONVERT(int, '123.4') --失败select CAST('123.4'as decimal) -- 123select CONVERT(decimal, '123.4') -- 123select CAST('123.4'as decimal(9,2)) -- 123.40select CONVERT(decimal(9,2), '123.4') -- 123.40declare @Num moneyset @Num = 1234.56select CONVERT(varchar(20), @Num, 0) -- 1234.56select CONVERT(varchar(20), @Num, 1) -- 1,234.56select CONVERT(varchar(20), @Num, 2) -- 1234.5600字符函数--len()⽤来计算字符串的长度select LEN('123456') --6select LEN('⼀⼆三') --3select LEN('⼀23') --3--lower()⽤来将⼀个字符串转换为⼩写,upper()⽤来将⼀个字符串转换为⼤写select lower('ABC') --abcselect upper('abc') --ABC--ltrim()⽤来将⼀个字符串左侧的空格去掉,rtrim()⽤来将⼀个字符串右侧的空格去掉select ltrim(' AAA') --AAAselect rtrim('AAA ') --AAA--substring(string,start_position,length) 可以从任意位置取任意长度的⼦字符串select substring('HelloWorld!',6,6) ---World!--left(string,length) 从左侧开始取⼦字符串select left('HelloWorld!' ,5) --Hello--right(string,length)从右侧开始取⼦字符串select right('HelloWorld!' ,6) --World!--replace(string,要被替换的字符串,替换的字符串)select replace('aaabbbcccdddaaabbbcccddd','aa','11') --11abbbcccddd11abbbcccddd--reverse(string_expression)返回字符串值的逆向值select reverse('abc') --cba--删除指定长度的字符,并在指定的起点处插⼊另⼀组字符--stuff(character_expression , start , length ,character_expression)select stuff('aaabbbcccdddaaabbbcccddd',4,6,'222333') --aaa222333dddaaabbbcccddd--以指定的次数重复字符串值--replicate(string_expression ,integer_expression)select replicate('123',5) --123123123123123--返回字符串中指定表达式的开始位置--charindex(expression1 ,expression2 , start_location )或charindex(expression1 ,expression2 )--expression1在expression2 中的开始位置select charindex('H','elloHWorld') --5。

SPARK-SQL内置函数之时间日期类

SPARK-SQL内置函数之时间日期类

SPARK-SQL内置函数之时间⽇期类⼀、获取当前时间1.current_date获取当前⽇期2018-04-092.current_timestamp/now()获取当前时间2018-04-09 15:20:49.247⼆、从⽇期时间中提取字段1.year,month,day/dayofmonth,hour,minute,secondExamples:> SELECT day('2009-07-30'); 302.dayofweek (1 = Sunday, 2 = Monday, ..., 7 = Saturday),dayofyearExamples:> SELECT dayofweek('2009-07-30'); 5Since: 2.3.03.weekofyearweekofyear(date) - Returns the week of the year of the given date. A week is considered to start on a Monday and week 1 is the first week with >3 days.Examples:> SELECT weekofyear('2008-02-20'); 84.trunc截取某部分的⽇期,其他部分默认为01第⼆个参数 ["year", "yyyy", "yy", "mon", "month", "mm"]Examples:> SELECT trunc('2009-02-12', 'MM');2009-02-01> SELECT trunc('2015-10-27', 'YEAR');2015-01-015.date_trunc ["YEAR", "YYYY", "YY", "MON", "MONTH", "MM", "DAY", "DD", "HOUR", "MINUTE", "SECOND", "WEEK", "QUARTER"]Examples:> SELECT date_trunc('2015-03-05T09:32:05.359', 'HOUR'); 2015-03-05T09:00:00Since: 2.3.06.date_format将时间转化为某种格式的字符串Examples:> SELECT date_format('2016-04-08', 'y'); 2016三、⽇期时间转换1.unix_timestamp返回当前时间的unix时间戳Examples:> SELECT unix_timestamp(); 1476884637> SELECT unix_timestamp('2016-04-08', 'yyyy-MM-dd'); 14600412002.from_unixtime将时间戳换算成当前时间,to_unix_timestamp将时间转化为时间戳Examples:> SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss'); 1970-01-01 00:00:00>SELECT to_unix_timestamp('2016-04-08', 'yyyy-MM-dd'); 14600412003.to_date/date将字符串转化为⽇期格式,to_timestamp(Since: 2.2.0)> SELECT to_date('2009-07-30 04:17:52'); 2009-07-30> SELECT to_date('2016-12-31', 'yyyy-MM-dd'); 2016-12-31> SELECT to_timestamp('2016-12-31 00:12:00'); 2016-12-31 00:12:004.quarter 将1年4等分(range 1 to 4)Examples:> SELECT quarter('2016-08-31'); 3四、⽇期、时间计算1.months_between两个⽇期之间的⽉数months_between(timestamp1, timestamp2) - Returns number of months between timestamp1 and timestamp2.Examples:> SELECT months_between('1997-02-28 10:30:00', '1996-10-30'); 3.949596772. add_months返回⽇期后n个⽉后的⽇期Examples:> SELECT add_months('2016-08-31', 1); 2016-09-30st_day(date),next_day(start_date, day_of_week)Examples:> SELECT last_day('2009-01-12'); 2009-01-31> SELECT next_day('2015-01-14', 'TU'); 2015-01-204.date_add,date_sub(减)date_add(start_date, num_days) - Returns the date that is num_days after start_date.Examples:> SELECT date_add('2016-07-30', 1); 2016-07-315.datediff(两个⽇期间的天数)datediff(endDate, startDate) - Returns the number of days from startDate to endDate.Examples:> SELECT datediff('2009-07-31', '2009-07-30'); 16.关于UTC时间to_utc_timestampto_utc_timestamp(timestamp, timezone) - Given a timestamp like '2017-07-14 02:40:00.0', interprets it as a time in the given time zone, and renders that time as a timestamp in UTC. For example, 'GMT+1' would yield '2017-07-14 01:40:00.0'.Examples:> SELECT to_utc_timestamp('2016-08-31', 'Asia/Seoul'); 2016-08-30 15:00:0from_utc_timestampfrom_utc_timestamp(timestamp, timezone) - Given a timestamp like '2017-07-14 02:40:00.0', interprets it as a time in UTC, and renders that time as a timestamp in the given time zone. For example, 'GMT+1' would yield '2017-07-14 03:40:00.0'.Examples:> SELECT from_utc_timestamp('2016-08-31', 'Asia/Seoul'); 2016-08-31 09:00:00。

Oracle内置函数大全

Oracle内置函数大全

Oracl e SQL 内置函数大全(一)整理时间[2005-10-14] 阅读次数[6224]导读:Oracle SQL 内置函数大全(一)Oracle SQL 内置函数大全(二)Oracle SQL 内置函数大全(三)________________________________________文字大小:【大】【中】【小】SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;A a ZERO SPACE--------- --------- --------- ---------65 97 48 322. 2.CHR给出整数,返回对应的字符;SQL> select chr(54740) zhao,chr(65) chr65 from dual;ZH C-- -赵A3. 3.CONCAT连接两个字符串;SQL> select concat('010-','88888888')||'转23' 高乾竞电话from dual; 高乾竞电话----------------010-********转234. 4.INITCAP返回字符串并将字符串的第一个字母变为大写;SQL> select initcap('smith') upp from dual;UPP-----Smith5. 5.INSTR(C1,C2,I,J)在一个字符串中搜索指定的字符,返回发现指定的字符的位置;C1 被搜索的字符串C2 希望搜索的字符串I 搜索的开始位置,默认为1J 出现的位置,默认为1(第一次?)SQL> select instr('oracle traning','ra',1,2) instring from dual;INSTRING---------96. 6.LENGTH返回字符串的长度;SQL> selectname,length(name),addr,length(addr),sal,length(to_char(sal))from .nchar_tst; NAME LENGTH(NAME) ADDR LENGTH(ADDR) SALLENGTH(TO_CHAR(SAL))------ ------------ ---------------- ------------ --------- --------------------高乾竞 3 北京市海锭区 6 9999.99 7。

Access常用内置SQL函数

Access常用内置SQL函数

Access常用内置SQL函数一、Access常用内置SQL函数---日期时间函数1.CDate说明:将字符串转化成为日期举例:select CDate("2008/4/5")2.Date说明:返回当前日期举例:select Date()3.DateAdd说明:将指定日期加上某个日期举例:select dateAdd("d",30,Date()),其中d可以换为yyyy或H等4.DateDiff说明:判断两个日期之间的间隔举例:select DateDiff("d","2008-5-1",now) 其中d可以换为yyyy或H等5.DatePart说明:返回日期的某个部分举例:select DatePart("d","2008-5-1")返回1,即1号,d也可以换为yyyy或m6.Day说明:返回日期的d部分,等同于datepart的d部分举例:select Day("2008-5-1")返回1,即1号7.Hour说明:返回日期的小时举例:select Hour("2008-5-1 18:25:14")返回18,即18点8.IsDate说明:判断是否是日期,是日期返回-1,不是日期返回0举例:select IsDate("2008-5-1 18:25:14")9.Minute 返回日期的分钟部分说明:返回日期的分钟部分举例:select Minute("2008-5-1 18:25:14")返回25,即25分10.Month说明:返回日期的月份部分举例:select Month("2008-5-1 18:25:14")返回5,即5月11.Now说明: 返回当前时间(年月日时分秒)举例:select Now()12.Second说明:返回日期的秒部分举例:select Second("2008-5-1 18:25:14")返回14,即14秒13.Time说明:返回当前的时间部分举例:select Time()14.weekday说明:返回某个日期的当前星期(星期天为1,星期一为2,星期二为3 ...) 举例:select weekday(now())15.Year说明:返回某个日期的年份举例:select Year("2008-5-1 18:25:14")返回2008,即2008年二、 Access常用内置SQL函数---文本字符串函数1.Asc说明:返回字母的Acsii值举例:select Asc("A")返回652.Chr说明:将ascii值转换到字符举例:select chr(65)返回"A"3.Format说明:格式化字符串举例:Select Format(now(),"yyyy-mm-dd")返回类似于"2008-04-03" Select Format(3/9,"0.00")返回0.334.InStr说明:查询子串在字符串中的第一个出现的位置,没有返回0举例:select Instr("abc","a") 返回15.LCase说明:返回字符串的小写形式举例:select LCase("ABC") 返回"abc"6.Left说明:左截取字符串举例:select Left("ABC",1) 返回"A"7.Len说明:返回字符串长度举例:select Len("ABC你好")返回58.LTrim说明:左截取空格举例:select LTrim(" 111") 返回"111"9.Mid说明:取得子字符串举例:select mid("abcd",1,2) 返回"ab"10.Right说明:右截取字符串举例:select Right("ABC",1) 返回"C"11.RTrim说明:右截取空格举例:select Right("ABC ") 返回"ABC"12.Space说明:产生空格举例:select Space(5) 返回5个空格13.StrComp说明:比较两个字符串是否内容一致(不区分大小写) 举例:select StrComp("abc","ABC")返回0select StrComp("abc","123")返回-114.Trim说明:截取字符串两头的空格举例:select Trim(" ABC ") 返回"ABC"15.UCase说明:将字符串转大写举例:select UCase("abc") 返回"ABC"三、 Access常用内置SQL函数---统计类函数1.Avg说明:取字段平均值2.Count说明:统计记录条数3.Max说明:取字段最大值4.Min说明:取字段最小值5.StDev说明:估算样本的标准差(忽略样本中的逻辑值和文本)6.StDevP说明:计算以参数形式(忽略逻辑值和文本)给出的整个样本总体的标准偏差7.Sum说明:计算字段的总合8.Var说明:估算样本方差(忽略样本中的逻辑值和文本)9.VarP说明:计算整个样本总体的方差(忽略样本总体中的逻辑值和文本)。

sql去掉空格的函数

sql去掉空格的函数

sql去掉空格的函数
SQL去掉空格的函数是指在sql中使用特定函数来去掉字符串中的
空格或其他空白字符。

SQL有很多内置函数可以用于清理字符串,其中
最常用的有RTRIM(),LTRIM()和TRIM()三个函数。

RTRIM()函数用于从字符串的右端删除空格或其他空白字符。


可以接受一个参数,即要去掉空格的字符串,如果不传入参数,它会
默认从字符串右端开始去掉空格。

语法为:RTRIM(string1,
string2...)。

LTRIM()函数用于从字符串的左端删除空格或其他空白字符,它
也可以接受一个参数,即要去掉空格的字符串,如果不传入参数,它
会默认从字符串左端开始去掉空格。

语法为:LTRIM(string1,
string2...)。

TRIM()函数作用是从字符串的两端删除空格或其他空白字符,
它会将左侧空格和右侧空格同时去掉,这一点和前面两个函数不同。

语法为:TRIM([leading|trailing] [removertarget] from
string1)。

以上三个函数都是sql内置函数,可以用来在sql语句中去掉字
符串中的空格和空白字符,由于各个数据库系统对 sql 的实现不一样,所以具体的函数细节也有所不同。

sql简体到繁体转化的内置函数

sql简体到繁体转化的内置函数

sql简体到繁体转化的内置函数SQL内置了一些函数用于简体中文转化为繁体中文,这些函数可以让我们更加便利地进行数据处理和分析。

其中主要包括以下的函数:
1. CHT_TO_CHS:将繁体中文转换为简体中文。

2. CHS_TO_CHT:将简体中文转换为繁体中文。

3. CONVERT:实现中文字符集之间的转换,包括简体中文和繁体
中文之间的转换。

例如,我们可以使用CHT_TO_CHS函数将繁体中文列转换为简体中
文列,如下所示:
SELECT CHT_TO_CHS(列名) FROM 表名;
这将返回一个新的列,其中所有的繁体中文将被转换为简体中文。

同样,我们可以使用CHS_TO_CHT函数将简体中文列转换为繁体中文列:SELECT CHS_TO_CHT(列名) FROM 表名;
需要注意的是,这些函数只适用于中文字符集,如果需要将其他
语言的文本转化为中文,需要采用其他方法。

mssql中常用的字符串函数大集合

mssql中常用的字符串函数大集合

mssql中常用的字符串函数大集合1.绝对值SQL:select abs(-1) valueO:select abs(-1) value from dual2.取整(大)S:select ceiling(-1.001) valueO:select ceil(-1.001) value from dual3.取整(小)S:select floor(-1.001) valueO:select floor(-1.001) value from dual4.取整(截取)S:select cast(-1.002 as int) valueO:select trunc(-1.002) value from dual5.四舍五入S:select round(1.23456,4) value 1.23460O:select round(1.23456,4) value from dual 1.2346 6.e为底的幂S:select Exp(1) value 2.7182818284590451O:select Exp(1) value from dual 2.718281827.取e为底的对数S:select log(2.7182818284590451) value 1O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数S:select log10(10) value 1O:select log(10,10) value from dual; 19.取平方S:select SQUARE(4) value 16O:select power(4,2) value from dual 1610.取平方根S:select SQRT(4) value 2O:select SQRT(4) value from dual 211.求任意数为底的幂S:select power(3,4) value 81O:select power(3,4) value from dual 8112.取随机数S:select rand() valueO:select sys.dbms_random.value(0,1) value from dual;13.取符号S:select sign(-8) value -1O:select sign(-8) value from dual -1----------数学函数14.圆周率S:SELECT PI() value 3.1415926535897931O:不知道15.sin,cos,tan 参数都以弧度为单位例如:select sin(PI()/2) value 得到1(SQLServer)16.Asin,Acos,Atan,Atan2 返回弧度17.弧度角度互换(SQLServer,Oracle不知道)DEGREES:弧度-〉角度RADIANS:角度-〉弧度---------数值间比较18. 求集合最大值S:select max(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select greatest(1,-2,4,3) value from dual19. 求集合最小值S:select min(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select least(1,-2,4,3) value from dual20.如何处理null值(F2中的null以10代替)S:select F1,IsNull(F2,10) value from TblO:select F1,nvl(F2,10) value from Tbl--------数值间比较21.求字符序号S:select ascii('a') valueO:select ascii('a') value from dual22.从序号求字符S:select char(97) valueO:select chr(97) value from dual23.连接S:select '11'+'22'+'33' valueO:select CONCAT('11','22')||33 value from dual23.子串位置--返回3S:select CHARINDEX('s','sdsq',2) valueO:select INSTR('sdsq','s',2) value from dual23.模糊子串的位置--返回2,参数去掉中间%则返回7S:select patindex('%d%q%','sdsfasdqe') valueO:oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?BR> select INSTR('sdsfasdqe','sd',1,2) value from dual 返回624.求子串S:select substring('abcd',2,2) valueO:select substr('abcd',2,2) value from dual25.子串代替返回aijklmnefS:SELECT STUFF('abcdef', 2, 3, 'ijklmn') valueO:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual26.子串全部替换S:没发现O:selectTranslate('fasdbfasegas','fa','我' ) value from dual 27.长度S:len,datalengthO:length28.大小写转换lower,upper29.单词首字母大写S:没发现O:select INITCAP('abcd dsaf df') value from dual30.左补空格(LPAD的第一个参数为空格则同space函数)S:select space(10)+'abcd' valueO:select LPAD('abcd',14) value from dual31.右补空格(RPAD的第一个参数为空格则同space函数)S:select 'abcd'+space(10) valueO:select RPAD('abcd',14) value from dual32.删除空格S:ltrim,rtrimO:ltrim,rtrim,trim33. 重复字符串S:select REPLICATE('abcd',2) valueO:没发现34.发音相似性比较(这两个单词返回值一样,发音相同)S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dualSQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差返回0-4,4为同音,1最高--------------日期函数35.系统时间S:select getdate() valueO:select sysdate value from dual36.前后几日直接与整数相加减37.求日期S:select convert(char(10),getdate(),20) valueO:select trunc(sysdate) value from dualselect to_char(sysdate,'yyyy-mm-dd') value from dual38.求时间S:select convert(char(8),getdate(),108) valueO:select to_char(sysdate,'hh24:mm:ss') value from dual39.取日期时间的其他部分S:DATEPART 和DATENAME 函数(第一个参数决定)O:to_char函数第二个参数决定参数---------------------------------下表需要补充year yy, yyyyquarter qq, q (季度)month mm, m (m O无效)dayofyear dy, y (O表星期)day dd, d (d O无效)week wk, ww (wk O无效)weekday dw (O不清楚)Hour hh,hh12,hh24 (hh12,hh24 S无效)minute mi, n (n O无效)second ss, s (s O无效)millisecond ms (O无效)----------------------------------------------40.当月最后一天S:不知道O:select LAST_DAY(sysdate) value from dual41.本星期的某一天(比如星期日)S:不知道O:SELECT Next_day(sysdate,7) vaule FROM DUAL;42.字符串转时间S:可以直接转或者select cast('2004-09-08'as datetime) valueO:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;43.求两日期某一部分的差(比如秒)S:select datediff(ss,getdate(),getdate()+12.3) valueO:直接用两个日期相减(比如d1-d2=12.3)SELECT (d1-d2)*24*60*60 vaule FROM DUAL;44.根据差值求新的日期(比如分钟)S:select dateadd(mi,8,getdate()) valueO:SELECT sysdate+8/60/24 vaule FROM DUAL;45.求不同时区时间S:不知道O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL; -----时区参数,北京在东8区应该是Ydt-------AST ADT 大西洋标准时间BST BDT 白令海标准时间CST CDT 中部标准时间EST EDT 东部标准时间GMT 格林尼治标准时间HST HDT 阿拉斯加—夏威夷标准时间MST MDT 山区标准时间NST 纽芬兰标准时间PST PDT 太平洋标准时间YST YDT YUKON标准时间Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:函数Oracle Microsoft SQL Server把字符转换为ASCII ASCII ASCII字串连接CONCAT (expression + expression)把ASCII转换为字符CHR CHAR返回字符串中的开始字符(左起)INSTR CHARINDEX把字符转换为小写LOWER LOWER把字符转换为大写UPPER UPPER填充字符串的左边LPAD N/A清除开始的空白LTRIM LTRIM清除尾部的空白RTRIM RTRIM字符串中的起始模式(pattern)INSTR PATINDEX多次重复字符串RPAD REPLICATE字符串的语音表示SOUNDEX SOUNDEX重复空格的字串RPAD SPACE从数字数据转换为字符数据TO_CHAR STR子串SUBSTR SUBSTRING替换字符REPLACE STUFF将字串中的每个词首字母大写INITCAP N/A翻译字符串TRANSLATE N/A字符串长度LENGTH DATELENGTH or LEN列表中最大的字符串GREATEST N/A列表中最小的字符串LEAST N/A如果为NULL则转换字串NVL ISNULL日期函数函数Oracle Microsoft SQL Server日期相加(date column +/- value) orADD_MONTHS DATEADD两个日期的差(date column +/- value) or MONTHS_BETWEEN DATEDIFF当前日期和时间SYSDATE GETDATE()一个月的最后一天LAST_DAY N/A时区转换NEW_TIME N/A日期后的第一个周日NEXT_DAY N/A代表日期的字符串TO_CHAR DATENAME代表日期的整数TO_NUMBER(TO_CHAR)) DATEPART日期舍入ROUND CONVERT日期截断TRUNC CONVERT字符串转换为日期TO_DATE CONVERT如果为NULL则转换日期NVL ISNULL转换函数函数Oracle Microsoft SQL Server数字转换为字符TO_CHAR CONVERT字符转换为数字TO_NUMBER CONVERT日期转换为字符TO_CHAR CONVERT字符转换为日期TO_DATE CONVERT16进制转换为2进制HEX_TO_RAW CONVERT 2进制转换为16进制RAW_TO_HEX CONVERT其它行级别的函数函数Oracle Microsoft SQL Server返回第一个非空表达式DECODE COALESCE当前序列值CURRVAL N/A下一个序列值NEXTVAL N/A如果exp1 = exp2, 返回null DECODE NULLIF用户登录账号ID数字UID SUSER_ID用户登录名USER SUSER_NAME用户数据库ID数字UID USER_ID用户数据库名USER USER_NAME当前用户CURRENT_USER CURRENT_USER用户环境(audit trail) USERENV N/A在CONNECT BY子句中的级别LEVEL N/A合计函数函数Oracle Microsoft SQL ServerAverage AVG AVGCount COUNT COUNTMaximum MAX MAXMinimum MIN MINStandard deviation STDDEV STDEV or STDEVPSummation SUM SUMVariance VARIANCE VAR or VARPOracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:EXTRACT(YEAR FROM 日期)。

SQL函数使用大全及示例使用方法汇总

SQL函数使用大全及示例使用方法汇总

SQL函数使用大全及示例使用方法汇总1.数值函数:-ABS(x):返回x的绝对值。

示例:SELECTABS(-5);--返回结果为5-CEIL(x):返回大于或等于x的最小整数。

示例:SELECTCEIL(4.3);--返回结果为5-FLOOR(x):返回小于或等于x的最大整数。

示例:SELECTFLOOR(4.9);--返回结果为4-ROUND(x,d):返回x的四舍五入值,可指定小数位数d。

示例:SELECTROUND(4.567,2);--返回结果为4.57-MOD(x,y):返回x除以y的余数。

示例:SELECTMOD(10,3);--返回结果为12.字符串函数:- CONCAT(str1, str2):将str1和str2连接起来。

示例:SELECT CONCAT('Hello', 'World'); -- 返回结果为HelloWorld- UPPER(str):将str中的字符转换为大写。

示例:SELECT UPPER('abcd'); -- 返回结果为ABCD- LOWER(str):将str中的字符转换为小写。

示例:SELECT LOWER('ABCD'); -- 返回结果为abcd- LENGTH(str):返回str的字符数。

示例:SELECT LENGTH('HelloWorld'); -- 返回结果为11- SUBSTRING(str, start, length):返回str从start位置开始的length个字符。

示例:SELECT SUBSTRING('HelloWorld', 6, 5); -- 返回结果为World3.日期和时间函数:-NOW(:返回当前日期和时间。

示例:SELECTNOW(;--返回结果为当前日期和时间- DATE_FORMAT(date, format):将date按指定格式(format)进行格式化。

SPARK-SQL内置函数之字符串函数

SPARK-SQL内置函数之字符串函数

SPARK-SQL内置函数之字符串函数1.concat对于字符串进⾏拼接concat(str1, str2, ..., strN) - Returns the concatenation of str1, str2, ..., strN.Examples:> SELECT concat('Spark', 'SQL'); SparkSQL2.concat_ws在拼接的字符串中间添加某种格式concat_ws(sep, [str | array(str)]+) - Returns the concatenation of the strings separated by sep.Examples:> SELECT concat_ws(' ', 'Spark', 'SQL'); Spark SQL3.decode转码decode(bin, charset) - Decodes the first argument using the second argument character set.Examples: > SELECT decode(encode('abc', 'utf-8'), 'utf-8'); abc4.encode设置编码格式encode(str, charset) - Encodes the first argument using the second argument character set.Examples: > SELECT encode('abc', 'utf-8');abc5.format_string/printf 格式化字符串format_string(strfmt, obj, ...) - Returns a formatted string from printf-style format strings.Examples:> SELECT format_string("Hello World %d %s", 100, "days"); Hello World 100 days6.initcap将每个单词的⾸字母变为⼤写,其他字母⼩写; lower全部转为⼩写,upper⼤写initcap(str) - Returns str with the first letter of each word in uppercase. All other letters are in lowercase. Words are delimited by white space. Examples:> SELECT initcap('sPark sql'); Spark Sql7.length返回字符串的长度Examples:> SELECT length('Spark SQL '); 108.levenshtein编辑距离(将⼀个字符串变为另⼀个字符串的距离)levenshtein(str1, str2) - Returns the Levenshtein distance between the two given strings.Examples:> SELECT levenshtein('kitten', 'sitting'); 39.lpad返回固定长度的字符串,如果长度不够,⽤某种字符补全,rpad右补全lpad(str, len, pad) - Returns str, left-padded with pad to a length of len. If str is longer than len, the return value is shortened to len characters. Examples:> SELECT lpad('hi', 5, '??'); hi10.ltrim去除空格或去除开头的某些字符,rtrim右去除,trim两边同时去除ltrim(str) - Removes the leading space characters from str.ltrim(trimStr, str) - Removes the leading string contains the characters from the trim stringExamples:> SELECT ltrim(' SparkSQL '); SparkSQL> SELECT ltrim('Sp', 'SSparkSQLS'); arkSQLS11.regexp_extract 正则提取某些字符串,regexp_replace正则替换Examples:> SELECT regexp_extract('100-200', '(\d+)-(\d+)', 1); 100Examples: > SELECT regexp_replace('100-200', '(\d+)', 'num'); num-num12.repeat复制给的字符串n次Examples: > SELECT repeat('123', 2); 12312313.instr返回截取字符串的位置/locateinstr(str, substr) - Returns the (1-based) index of the first occurrence of substr in str.Examples:> SELECT instr('SparkSQL', 'SQL'); 6Examples:> SELECT locate('bar', 'foobarbar'); 414.space 在字符串前⾯加n个空格space(n) - Returns a string consisting of n spaces.Examples:> SELECT concat(space(2), '1'); 115.split以某些字符拆分字符串split(str, regex) - Splits str around occurrences that match regex.Examples:> SELECT split('oneAtwoBthreeC', '[ABC]'); ["one","two","three",""]16.substr截取字符串,substring_indexExamples:> SELECT substr('Spark SQL', 5); k SQL> SELECT substr('Spark SQL', -3); SQL> SELECT substr('Spark SQL', 5, 1); k> SELECT substring_index('', '.', 2); www.apache17.translate 替换某些字符串为Examples: > SELECT translate('AaBbCc', 'abc', '123'); A1B2C318.get_json_objectget_json_object(json_txt, path) - Extracts a json object from path.Examples:> SELECT get_json_object('{"a":"b"}', '$.a'); b19.unhexunhex(expr) - Converts hexadecimal expr to binary.Examples:> SELECT decode(unhex('537061726B2053514C'), 'UTF-8'); Spark SQL20.to_jsonto_json(expr[, options]) - Returns a json string with a given struct valueExamples:> SELECT to_json(named_struct('a', 1, 'b', 2)); {"a":1,"b":2}> SELECT to_json(named_struct('time', to_timestamp('2015-08-26', 'yyyy-MM-dd')), map('timestampFormat', 'dd/MM/yyyy')); {"time":"26/08/2015"} > SELECT to_json(array(named_struct('a', 1, 'b', 2)); [{"a":1,"b":2}]> SELECT to_json(map('a', named_struct('b', 1))); {"a":{"b":1}}> SELECT to_json(map(named_struct('a', 1),named_struct('b', 2))); {"[1]":{"b":2}}> SELECT to_json(map('a', 1)); {"a":1}> SELECT to_json(array((map('a', 1)))); [{"a":1}]。

SQL函数大全汇总

SQL函数大全汇总

SQL函数大全汇总1.字符串函数:- CONCAT(str1, str2, ...):将多个字符串合并为一个字符串。

- LENGTH(str):计算字符串的长度。

- UPPER(str):将字符串转换为大写。

- LOWER(str):将字符串转换为小写。

- TRIM([characters FROM] str):去除字符串两端的指定字符。

- SUBSTRING_INDEX(str, delimiter, count):根据指定的分隔符,返回字符串的指定部分。

- REPLACE(str, search, replace):将字符串中的指定内容替换为新的内容。

- LEFT(str, length):返回字符串的左侧指定长度的部分。

- RIGHT(str, length):返回字符串的右侧指定长度的部分。

2.数值函数:- ABS(num):返回num的绝对值。

- CEILING(num):返回大于或等于num的最小整数。

- FLOOR(num):返回小于或等于num的最大整数。

- ROUND(num, precision):将num四舍五入到指定的精度。

-RAND(:返回一个0到1之间的随机数。

- MOD(num1, num2):返回num1除以num2的余数。

- POWER(num1, num2):返回num1的num2次幂。

3.日期和时间函数:-CURDATE(:返回当前日期。

-CURTIME(:返回当前时间。

-NOW(:返回当前日期和时间。

- DATE_FORMAT(date, format):将日期根据指定的格式进行格式化。

- YEAR(date):返回日期的年份部分。

- MONTH(date):返回日期的月份部分。

- DAY(date):返回日期的日部分。

4.聚合函数:- AVG(column):返回指定列的平均值。

- SUM(column):返回指定列的总和。

- COUNT(column):返回指定列的行数。

MySQL函数大全及用法示例

MySQL函数大全及用法示例

MySQL函数⼤全及⽤法⽰例1、字符串函数ascii(str)返回字符串str的第⼀个字符的ascii值(str是空串时返回0)mysql> select ascii('2'); -> 50mysql> select ascii(2); -> 50mysql> select ascii('dete'); -> 100ord(str)如果字符串str句⾸是单字节返回与ascii()函数返回的相同值。

如果是⼀个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]mysql> select ord('2'); -> 50conv(n,from_base,to_base)对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作⽆符号数,conv以64位点精度⼯作)mysql> select conv("a",16,2); -> '1010'mysql> select conv("6e",18,8); -> '172'mysql> select conv(-17,10,-18); -> '-h'mysql> select conv(10+"10"+'10'+0xa,10,10); -> '40'bin(n)把n转为⼆进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))mysql> select bin(12); -> '1100'oct(n)把n转为⼋进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))mysql> select oct(12); -> '14'hex(n)把n转为⼗六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))mysql> select hex(255); -> 'ff'char(n,...)返回由参数n,...对应的ascii代码字符组成的⼀个字串(参数是n,...是数字序列,null值被跳过)mysql> select char(77,121,83,81,'76'); -> 'mysql'mysql> select char(77,77.3,'77.3'); -> 'mmm'concat(str1,str2,...)把参数连成⼀个长字符串并返回(任何参数是null时返回null)mysql> select concat('my', 's', 'ql'); -> 'mysql'mysql> select concat('my', null, 'ql'); -> nullmysql> select concat(14.3); -> '14.3'length(str)octet_length(str)char_length(str)返回字符串str的长度(对于多字节字符char_length仅计算⼀次)mysql> select length('text'); -> 4mysql> select octet_length('text'); -> 4locate(substr,str)position(substr in str)返回字符串substr在字符串str第⼀次出现的位置(str不包含substr时返回0)mysql> select locate('bar', 'foobarbar'); -> 4mysql> select locate('xbar', 'foobar'); -> 0locate(substr,str,pos)返回字符串substr在字符串str的第pos个位置起第⼀次出现的位置(str不包含substr时返回0) mysql> select locate('bar', 'foobarbar',5); -> 7instr(str,substr)返回字符串substr在字符串str第⼀次出现的位置(str不包含substr时返回0)mysql> select instr('foobarbar', 'bar'); -> 4mysql> select instr('xbar', 'foobar'); -> 0lpad(str,len,padstr)⽤字符串padstr填补str左端直到字串长度为len并返回mysql> select lpad('hi',4,'??'); -> '??hi'rpad(str,len,padstr)⽤字符串padstr填补str右端直到字串长度为len并返回mysql> select rpad('hi',5,'?'); -> 'hi???'left(str,len)返回字符串str的左端len个字符mysql> select left('foobarbar', 5); -> 'fooba'right(str,len)返回字符串str的右端len个字符mysql> select right('foobarbar', 4); -> 'rbar'substring(str,pos,len)substring(str from pos for len)mid(str,pos,len)返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6); -> 'ratica'substring(str,pos)substring(str from pos)返回字符串str的位置pos起的⼀个⼦串mysql> select substring('quadratically',5); -> 'ratically'mysql> select substring('foobarbar' from 4); -> 'barbar'substring_index(str,delim,count)返回从字符串str的第count个出现的分隔符delim之后的⼦串(count为正数时返回左端,否则返回右端⼦串)mysql> select substring_index('', '.', 2); -> 'www.mysql'mysql> select substring_index('', '.', -2); -> ''ltrim(str)返回删除了左空格的字符串strmysql> select ltrim(' barbar'); -> 'barbar'rtrim(str)返回删除了右空格的字符串strmysql> select rtrim('barbar '); -> 'barbar'trim([[both | leading | trailing] [remstr] from] str)返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格) mysql> select trim(' bar '); -> 'bar'mysql> select trim(leading 'x' from 'xxxbarxxx'); -> 'barxxx'mysql> select trim(both 'x' from 'xxxbarxxx'); -> 'bar'mysql> select trim(trailing 'xyz' from 'barxxyz'); -> 'barx'soundex(str)返回str的⼀个同⾳字符串(听起来“⼤致相同”字符串有相同的同⾳字符串,⾮数字字母字符被忽略,在a-z外的字母被当作元⾳)mysql> select soundex('hello'); -> 'h400'mysql> select soundex('quadratically'); -> 'q36324'space(n)返回由n个空格字符组成的⼀个字符串mysql> select space(6); -> ' 'replace(str,from_str,to_str)⽤字符串to_str替换字符串str中的⼦串from_str并返回mysql> select replace('', 'w', 'ww'); -> ''repeat(str,count)返回由count个字符串str连成的⼀个字符串(任何参数为null时返回null,count<=0时返回⼀个空字符串)mysql> select repeat('mysql', 3); -> 'mysqlmysqlmysql'reverse(str)颠倒字符串str的字符顺序并返回mysql> select reverse('abc'); -> 'cba'insert(str,pos,len,newstr)把字符串str由位置pos起len个字符长的⼦串替换为字符串newstr并返回mysql> select insert('quadratic', 3, 4, 'what'); -> 'quwhattic'elt(n,str1,str2,str3,...)返回第n个字符串(n⼩于1或⼤于参数个数返回null)mysql> select elt(1, 'ej', 'heja', 'hej', 'foo'); -> 'ej'mysql> select elt(4, 'ej', 'heja', 'hej', 'foo'); -> 'foo'field(str,str1,str2,str3,...)返回str等于其后的第n个字符串的序号(如果str没找到返回0)mysql> select field('ej', 'hej', 'ej', 'heja', 'hej','foo');mysql> select field('fo', 'hej', 'ej', 'heja', 'hej','foo'); -> 0find_in_set(str,strlist)返回str在字符串集strlist中的序号(任何参数是null则返回null,如果str没找到返回0,参数1包含","时⼯作异常)mysql> select find_in_set('b','a,b,c,d'); -> 2make_set(bits,str1,str2,...)把参数1的数字转为⼆进制,假如某个位置的⼆进制位等于1,对应位置的字串选⼊字串集并返回(null串不添加到结果中) mysql> select make_set(1,'a','b','c'); -> 'a'mysql> select make_set(1 | 4,'hello','nice','world'); -> 'hello,world'mysql> select make_set(0,'a','b','c'); -> ''export_set(bits,on,off,[separator,[number_of_bits]])按bits排列字符串集,只有当位等于1时插⼊字串on,否则插⼊off(separator默认值",",number_of_bits参数使⽤时长度不⾜补0⽽过长截断)mysql> select export_set(5,'y','n',',',4) -> y,n,y,nlcase(str)lower(str)返回⼩写的字符串strmysql> select lcase('quadratically'); -> 'quadratically'ucase(str)upper(str)返回⼤写的字符串strmysql> select ucase('quadratically'); -> 'quadratically'load_file(file_name)读⼊⽂件并且作为⼀个字符串返回⽂件内容(⽂件⽆法找到,路径不完整,没有权限,长度⼤于max_allowed_packet会返回null) mysql> update table_name set blob_column=load_file ("/tmp/picture") where id=1;2、数学函数abs(n)返回n的绝对值mysql> select abs(2); -> 2mysql> select abs(-32); -> 32sign(n)返回参数的符号(为-1、0或1)mysql> select sign(-32); -> -1mysql> select sign(0); -> 0mysql> select sign(234); -> 1mod(n,m)取模运算,返回n被m除的余数(同%操作符)mysql> select mod(234, 10); -> 4mysql> select 234 % 10;mysql> select mod(29,9); -> 2floor(n)返回不⼤于n的最⼤整数值mysql> select floor(1.23); -> 1mysql> select floor(-1.23); -> -2ceiling(n)返回不⼩于n的最⼩整数值mysql> select ceiling(1.23); -> 2mysql> select ceiling(-1.23); -> -1round(n,d)返回n的四舍五⼊值,保留d位⼩数(d的默认值为0) mysql> select round(-1.23); -> -1mysql> select round(-1.58); -> -2mysql> select round(1.58); -> 2mysql> select round(1.298, 1); -> 1.3mysql> select round(1.298, 0); -> 1exp(n)返回值e的n次⽅(⾃然对数的底)mysql> select exp(2); -> 7.389056mysql> select exp(-2); -> 0.135335log(n)返回n的⾃然对数mysql> select log(2); -> 0.693147mysql> select log(-2); -> nulllog10(n)返回n以10为底的对数mysql> select log10(2); -> 0.301030mysql> select log10(100); -> 2.000000mysql> select log10(-100); -> nullpow(x,y)power(x,y) 返回值x的y次幂mysql> select pow(2,2); -> 4.000000mysql> select pow(2,-2); -> 0.250000sqrt(n) 返回⾮负数n的平⽅根mysql> select sqrt(4); -> 2.000000mysql> select sqrt(20); -> 4.472136pi() 返回圆周率mysql> select pi(); -> 3.141593cos(n) 返回n的余弦值mysql> select cos(pi()); -> -1.000000sin(n) 返回n的正弦值mysql> select sin(pi()); -> 0.000000tan(n)返回n的正切值mysql> select tan(pi()+1); -> 1.557408acos(n) 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null) mysql> select acos(1); -> 0.000000mysql> select acos(1.0001); -> nullmysql> select acos(0); -> 1.570796asin(n)返回n反正弦值mysql> select asin(0.2); -> 0.201358mysql> select asin('foo'); -> 0.000000atan(n)返回n的反正切值mysql> select atan(2); -> 1.107149mysql> select atan(-2); -> -1.107149atan2(x,y) 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限) mysql> select atan(-2,2); -> -0.785398mysql> select atan(pi(),0); -> 1.570796cot(n)返回x的余切mysql> select cot(12); -> -1.57267341mysql> select cot(0); -> nullrand()rand(n)返回在范围0到1.0内的随机浮点值(可以使⽤数字n作为初始值) mysql> select rand(); -> 0.5925mysql> select rand(20); -> 0.1811mysql> select rand(20); -> 0.1811mysql> select rand();mysql> select rand(); -> 0.7888degrees(n)把n从弧度变换为⾓度并返回mysql> select degrees(pi()); -> 180.000000radians(n)把n从⾓度变换为弧度并返回mysql> select radians(90); -> 1.570796truncate(n,d)保留数字n的d位⼩数并返回mysql> select truncate(1.223,1); -> 1.2mysql> select truncate(1.999,1); -> 1.9mysql> select truncate(1.999,0); -> 1least(x,y,...)返回最⼩值(如果返回值被⽤在整数(实数或⼤⼩敏感字串)上下⽂或所有参数都是整数(实数或⼤⼩敏感字串)则他们作为整数(实数或⼤⼩敏感字串)⽐较,否则按忽略⼤⼩写的字符串被⽐较)mysql> select least(2,0); -> 0mysql> select least(34.0,3.0,5.0,767.0); -> 3.0mysql> select least("b","a","c"); -> "a"greatest(x,y,...)返回最⼤值(其余同least())mysql> select greatest(2,0); -> 2mysql> select greatest(34.0,3.0,5.0,767.0); -> 767.0mysql> select greatest("b","a","c"); -> "c"3、时期时间函数dayofweek(date)返回⽇期date是星期⼏(1=星期天,2=星期⼀,……7=星期六,odbc标准)mysql> select dayofweek('1998-02-03'); -> 3weekday(date)返回⽇期date是星期⼏(0=星期⼀,1=星期⼆,……6= 星期天)。

sql函数大全

sql函数大全

一、内部函数1、内部合计函数1)COUNT(*)返回行数2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的个数3)SUM(COLNAME/EXPRESSION)返回指定列或表达式的数值和;4)SUM(DISTINCT COLNAME)返回指定列中唯一值的和5)AVG(COLNAME/EXPRESSION)返回指定列或表达式中的数值平均值6)AVG(DISTINCT COLNAME)返回指定列中唯一值的平均值7)MIN(COLNAME/EXPRESSION)返回指定列或表达式中的数值最小值8)MAX(COLNAME/EXPRESSION)返回指定列或表达式中的数值最大值2、日期与时间函数1)DAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当月几号2)MONTH(DATE/DATETIME EXPRESSION)返回指定表达式中的月份3)YEAR(DATE/DATETIME EXPRESSION)返回指定表达式中的年份4)WEEKDAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当周星期几5)DATE(NOT DATE EXPRESSION)返回指定表达式代表的日期值6)TODAY 返回当前日期的日期值7)CURRENT[FIRST TO LAST] 返回当前日期的日期时间值8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定单位数9)MDY(MONTH,DAY,YEAR)返回标识指定年、月、日的日期值10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的日期时间值11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值12)EXTEND(DATE/DATETIME EXPRESSION,[FIRST TO LAST])返回经过调整的日期或日期时间值To_char函数将datetime和date值转化为字符值。

SQL函数使用大全

SQL函数使用大全

SQL函数使用大全SQL是一种用于管理和操作关系型数据库的语言,它提供了许多内置函数来进行数据查询、计算和转换等操作。

下面是一些常用的SQL函数及其用法。

1.COUNT函数:用于统计一些列的行数,可用于查询一些表或一些列的记录数量。

例如:SELECT COUNT(*) FROM table_name;2.SUM函数:用于计算一些列的总和,可用于计算数值型列的总和。

例如:SELECT SUM(column_name) FROM table_name;3.AVG函数:用于计算一些列的平均值,可用于计算数值型列的平均值。

例如:SELECT AVG(column_name) FROM table_name;4.MAX函数:用于找出一些列的最大值,可用于查找数值型列的最大值。

例如:SELECT MAX(column_name) FROM table_name;5.MIN函数:用于找出一些列的最小值,可用于查找数值型列的最小值。

例如:SELECT MIN(column_name) FROM table_name;6.CONCAT函数:用于将多个字符串合并成一个字符串。

例如:SELECT CONCAT(column1, ' ', column2) FROM table_name;7.SUBSTRING函数:用于截取字符串的一部分。

例如:SELECT SUBSTRING(column_name, start_position, length) FROM table_name;8.UPPER函数:用于将字符串转换为大写。

例如:SELECT UPPER(column_name) FROM table_name;9.LOWER函数:用于将字符串转换为小写。

例如:SELECT LOWER(column_name) FROM table_name;10.TRIM函数:用于去除字符串两端的空格或指定字符。

例如:SELECT TRIM(column_name) FROM table_name;11.LTRIM函数:用于去除字符串左边的空格或指定字符。

SQL内置函数说明

SQL内置函数说明

其语法格式如下:
CEIL(number)
其中:
number
任意数值,十进制数
下面的例子解释了CEIL函数的使用情况:
CEIL(5.1)=6
CEIL(-5.1)=-5
应注意,对于负数使用该函数的结果。大于等于-5。1的最小整数 精确地讲应该是-5。这是数学上的情况,但首先也是记数中知觉 上的感觉。
Oracle 8i数据库管理
SQL内置函数
WinnerSoft
• ATAN ATAN函数返回一数值的反正切值。结果以弧度表示, 且在-PI/2到PI/2之间。 其语法格式如下: ATAN(number) 其中:number必须是-1与1之间的值 下面的例子显示了1和-1 的反正切值: ATAN(1)=0.7854 ATAN(-1)=-0.7854
如果在数字格式中没有符号说明正数的前面将用一个空格代替对应负数的负号eeee9999eeee得到一个由说明符定义的格式数据fmfm999格式化一个没有前置空格和尾随空格的数据mi999999mi格式化一个有尾随符号的负数及尾随一空格的正数数字格式元素pr999pr格式化中的负数rnrn将数据的格式定义为大写罗马数字mm将数据的格式定义为小写罗马数字ss999999999999s将数据格式定义
XXXX Xxxx
999v999
WinnerSoft
说明
格式化< >中的负数 将数据的格式定义为大写罗马数字 将数据的格式定义为小写罗马数字 将数据格式定义成:负数前面负号(-),正数前面置正号(+)将 符号置于数值后面,符号变成尾随符号 以最少的字符数为数值格式。其中,TM9时固定的注记方式,但 TME则需使用具体的说明。如果,在一超过64个字符的字符串中使 用了TM9,那么,说明的形式可以是任意的 返回16进制数。该16进制数字符(A-F)符合格式说明串的要求。使 用X返回大写的16进制数字(A-F),使用x返回小写的16进制数值 (a-f) 乘以10的x次方,其中,x是字符v后面字符9的个数

SQL函数函数大全

SQL函数函数大全

SQL函数函数⼤全1:replace 函数第⼀个参数你的字符串,第⼆个参数你想替换的部分,第三个参数你要替换成什么select replace('lihan','a','b')-----------------------------lihbn(所影响的⾏数为 1 ⾏)=========================================================2:substring函数第⼀个参数你的字符串,第⼆个是开始替换位置,第三个结束替换位置select substring('lihan',0,3);-----li(所影响的⾏数为 1 ⾏)=========================================================3:charindex函数第⼀个参数你要查找的char,第⼆个参数你被查找的字符串返回参数⼀在参数⼆的位置select charindex('a','lihan')-----------4(所影响的⾏数为 1 ⾏)===========================================================4:ASCII函数返回字符表达式中最左侧的字符的 ASCII 代码值。

select ASCII('lihan')-----------108(所影响的⾏数为 1 ⾏)================================================================5:nchar函数根据 Unicode 标准的定义,返回具有指定的整数代码的 Unicode 字符。

参数是介于 0 与 65535 之间的正整数。

如果指定了超出此范围的值,将返回 NULL。

select nchar(3213)----unicode字符(所影响的⾏数为 1 ⾏)=========================================================6:soundex返回⼀个由四个字符组成的代码 (SOUNDEX),⽤于评估两个字符串的相似性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

from titles group by type order by type select count(distinct city) --求个数 from authors select stdev(royalty) --返回给定表达式中所有值的统计标准偏差 from titles select stdevp(royalty) --返回表达式中所有制的填充统计标准偏差 from titles select var(royalty) --返回所有值的统计方差 from titles select varp(royalty) --返回所有值的填充的统计方差 from titles --数学函数 select sin(23.45),atan(1.234),rand(),PI(),sign(-2.34) --其中rand是获得一个随机数 --配置函数 SELECT @@VERSION --获取当前数据库版本 SELECT @@LANGUAGE --当前语言 --时间函数 select getdate() as 'wawa_getdate' --当前时间 select getutcdate() as 'wawa_getutcdate' --获取utc时间 select day(getdate()) as 'wawa_day' --取出天 select month(getdate()) as 'wawa_month' --取出月 select year(getdate()) as 'wawa_year' --取出年 select dateadd(d,3,getdate()) as wawa_dateadd --加三天,注意'd'表示天,'m'表示月,'yy'表示年,下面一样 select datediff(d,'2004-07-01','2004-07-15') as wawa_datediff --计算两个时间的差 select datename(d,'2004-07-15') as wawa_datename --取出时间的某一部分 select datepart(d,getdate()) as wawa_datepart --取出时间的某一部分,和上面的那个差不多 --字符串函数 select ascii(123) as '123',ascii('123') as '"123"',ascii('abc') as '"abc"' --转换成ascii码 select char(123),char(321),char(-123) --根据ascii转换成字符 select lower('ABC'),lower('Abc'),upper('Abc'),upper('abc') --转换大小写 select str(123.45,6,1), str(123.45,2,2) --把数值转换成字符串 select ltrim(' "左边没有空格"') --去空格 select rtrim('"右边没有空格" ') --去空格 select ltrim(rtrim(' "左右都没有空格" ')) --去空格 select left('sql server',3),right('sql server',6) --取左或者取右 use pubs select au_lname,substring(au_fname,1,1) --取子串 from authors order by au_lname
upper,将字符串中每个小写字母转换为大写字母 initcap,将字符串中每个词的首写字母转换成大写 replace,将字符串中的某一组字符转换成其他字符,例replace(col,”each”,”eve”) substr,返回字符串中的某一部分,例substr(col,1,2) substring,返回字符串中的某一部分,例substring(col,from 1 to 4) lpad,使用lpad函数已用重复次数达到必要次数的字符序列在左边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。 举例:字段 col 为char(15)类型,select lpad(col,21,”_”) from tab_name则显示为在col前加上六个_。 Rpad,使用rpad函数已用重复次数达到必要次数的字符序列在右边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。 举例:字段col为char(15)类型,select rpad(col,21,”_”) from tab_name则显示为在col后边加上六个_。 10、其他函数: hex,返回表达式的十六进制数 round,返回表达式的四舍五入值 trunc,返回表达式的截断值 length,计算表达式的长度 user,返回执行查询的用户的用户名(登陆帐户名) today,返回当前系统日期 dbservername,返回数据库服务器的名称,同sitename dbinfo,返回数据库的相关信息 decode,函数来将一个具有一个值的表达式转换为另一个值 decode(test,a,a_value,b,b_value,c,c_value……),decode函数不支持TEXT和BYTE类型。 Nvl,来将求值为空的表达式转化为另一个想要指定的值。 另外还可以在select语句中使用存储过程,如select spl($test) from tab_name 二、IDS内部函数 1、DBSERVERNAME 返回数据库服务器名 let tmp_char=DBSERVERNAME 2、SITENAME 返回数据库服务器名 let tmp_char=SITENAME 说明:两者功能相同; 3、DBINFO(‘SPECIAL_KEYWORD') 返回只关键字值 例子1:返回数据中每个表的DBSPACE名称 select dbinfo('dbspace',partnum),tabname from systables where tabid>99 and tabtype='T' (OK) 例子2:返回任何表中插入的最后一个SERIAL值 select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1 例子3:返回最后一个SELECT,INSERT,UPDATE,DELETE或EXECUTE PROCEDURE语句处理的行数; select dbinfo('sqlca.sqlerrd2') from systables where tabid=1; 10. SQL函数大全 --聚合函数 select avg(distinct price) --算平均数from title where type='business' select max(ytd_sales) --最大数from titles select min(ytd_sales) --最小数from titles select type,sum(price),sum(advance) --求和
file:///C|/Documents and Settings/Administrator/桌面/sql函数大全.txt(第 3/17 页)2010-7-13 17:47:26
file:///C|/Documents and Settings/Administrator/桌面/sql函数大全.txt
file:///C|/Documents and Settings/Administrator/桌面/sql函数大全.txt(第 1/17 页)2010-7-13 17:47:26
file:///C|/Documents and Settings/Administrator/桌面/sql函数大全.txt
5)SQRT(COLNAME/EXPRESSION)-- 返回指定列或表达式的平方根值 6)ROUND(COLNAME/EXPRESSION,[FACTOR])--返回指定列或表达式的圆整化值 7)TRUNC(COLNAME/EXPRESSION,[FACTOR])-- 返回指定列或表达式的截尾值 说明:上两者中FACTOR指定小数位数,若不指定,则为0;若为负数,则整化到小数点左边; 注:ROUND是在指定位上进行4舍5入;TRUNC是在指定位上直接截断; let tmp_float = round(4.555,2) --4.56 let tmp_float = trunc(4.555,2) --4.55 4、指数与对数函数 1)EXP(COLNAME/EXPRESSION)-- 返回指定列或表达式的指数值 2)LOGN(COLNAME/EXPRESSION)-- 返回指定列或表达式的自然对数值 3)LOG10(COLNAME/EXPRESSION)-- 返回指定列或表达式的底数位10的对数值 5、三角函数 1)COS(RADIAN EXPRESSION)-- 返回指定弧度表达式的余弦值 2)SIN(RADIAN EXPRESSION)-- 正弦 3)TAN(RADIAN EXPRESSION)-- 正切 4)ACOS(RADIAN EXPRESSION)-- 反余弦 5)ASIN(RADIAN EXPRESSION)-- 反正弦 6)ATAN(RADIAN EXPRESSION)-- 反正切 7)ATAN2(X,Y) 返回坐标(X,Y)的极坐标角度组件 6、统计函数 1)RANGE(COLNAME)-- 返回指定列的最大值与最小之差 = MAX(COLNAME)-MIN(COLNAME) 2)VARIANCE(COLNAME)-- 返回指定列的样本方差; 3)STDEV(COLNAME)-- 返回指定列的标准偏差; 7、其他函数 1)USER 返回当前用户名 2)HEX(COLNAME/EXPRESSION)-- 返回指定列或表达式的十六进制值 3)LENGTH(COLNAME/EXPRESSION)-- 返回指定字符列或表达式的长度 4)TRIM(COLNAME/EXPRESSION)-- 删除指定列或表达式前后的字符 5)COLNAME/EXPRESSION || COLNAME/EXPRESSION 返回并在一起的字符; 8、基数函数: 1)cardinality--(仅适用IDS)函数对集合包含的元素数目计数。 智能大对象函数,(仅适用与IDS) filetoblob( ),将文件复制到BLOB列中 filetoclob( ),将文件复制到CLOB列中 locopy( ),将BLOB或CLOB类型的数据复制到另一个BLOB或CLOB列中 lotofile( ),将BLOB或CLOB复制到文件中 9、字符串处理函数: lower,将字符串中每个大写字母转换为小写字母
相关文档
最新文档