sql函数

SQL Server基本函数

断了今生、忘了曾经 提交于 2019-12-06 16:12:44
1.字符串函数长度与分析用 datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格。 2,substring(expression,start,length) 取子串,字符串的下标是从“1”,start为起始位置,length为字符串长度,实际应用中以len(expression)取得其长度。 3,right(char_expr,int_expr) 返回字符串右边第int_expr个字符,还用left于之相反。 4,isnull( check_expression , replacement_value )如果check_expression为空,則返回replacement_value的值,不为空,就返回check_expression字符操作类。 5,Sp_addtype自定义数据类型 例如:EXEC sp_addtype birthday, datetime, 'NULL' 6,set nocount {on|off} 使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。 SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact

【Oracle_Package】Oracle的Package的作用及用法 【20140612】

心不动则不痛 提交于 2019-12-06 08:27:23
Oracle的Package的作用 简化应用设计、提高应用性能、实现信息隐藏、子程序重载。 1、Oracle的Package除 了把存储过程放到一堆儿以外还有没有其他的作用(好处)? 你不觉得把存储过程分门别类是很重要的么,而且不同的package的存储过程可以重 名。 用package不仅能把存储过程分门别类,而且在package里可以定义公共的变量/类型,既方便了编程,又减少了服务器的编译开销。 2、如何把现有的存储过程加入到Package中? copy and pasty,不过调用的时候要带包名了。 3、除了使用SQL Plus,还有没有什么工具做Package? 也有方便的第三方工具了,不过得自己找了。 用第三方工具吧,比如sql navigator。www.quest.com 4、使用SQL Plus编译Package,是否每次都是编译Package中所有的存储过程? 是 包也是一种命名pl/sql块,和存储过程、函数一下,都是在数据库启动的时候就载入内存的。开销的大小很难判断,因为你不用包,但是要完成包的功能的话,还是要用PL/SQL来完成的,服务器一样有开销。相对来说,用包少了SQL的语法分析、解释过程,开销还少一点。 “过程一般都不超过20行”那我倒很少遇到。用不用子过程关键要看是不是能定义可重用的子过程,用子过程效率不会低。 包的作用 :

SQL 标量函数-----日期函数 day() 、month()、year() 转载

纵然是瞬间 提交于 2019-12-06 07:40:30
select day(createtime) from life_unite_product --取 时间 字段的天值 select month(createtime) from life_unite_product --取时间字段的月值 select year(createtime) from life_unite_product --取时间字段的年值 select datepart(yy,createtime) from life_unite_product --取时间字段的年值 select datepart(qq,createtime) from life_unite_product --取时间字段的季度值 select datepart(mm,createtime) from life_unite_product --取时间字段的月值 select datepart(dy,createtime) from life_unite_product --取时间字段是那年的第几天 select datepart(dd,createtime) from life_unite_product --取时间字段的天值 select datepart(wk,createtime) from life_unite_product --取时间字段是那年的第几个星期 select

sql常用内置函数

故事扮演 提交于 2019-12-06 02:24:18
用于测试的表: 一、SUM 返回数值列的总数。 执行查询: select SUM(Score) as 总得分 from Students 效果: 二、MAX 返回一列中的最大值。、 执行查询: select MAX(Score) as 最高分 from Students 效果: 三、MIN 返回一列中的最小值。 执行查询: select MIN(Score) as 最低分 from Students 效果: 四、—— AVG 返回数值列的平均值。 执行查询: select AVG(Score) as 最低分 from Students 效果: 五、COUNT 返回匹配指定条件的行数。 执行查询: select COUNT(Score) as 学生人数 from Students 效果: 来源: https://www.cnblogs.com/xulinjun/p/11956909.html

sql 字符串 切割函数 FUN_Split

假装没事ソ 提交于 2019-12-06 00:15:25
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FUN_Split]') AND OBJECTPROPERTY(id, N'IsTableFunction') = 1 ) DROP FUNCTION [dbo].[FUN_Split] GO --分割字符串函数 Create FUNCTION [dbo].[FUN_Split] ( @SplitString nvarchar(max), --源字符串 @Separator nvarchar(10)=' ' --分隔符号,默认为空格 ) RETURNS @SplitStringsTable TABLE --输出的数据表 ( [id] int identity(1,1), [value] nvarchar(max) ) AS BEGIN DECLARE @CurrentIndex int; DECLARE @NextIndex int; DECLARE @ReturnText nvarchar(max); SELECT @CurrentIndex=1; WHILE(@CurrentIndex<=len(@SplitString)) BEGIN SELECT @NextIndex=charindex(@Separator,@SplitString

sql之查询语句的基本操作详解

China☆狼群 提交于 2019-12-05 21:56:55
Select查询语句分类 简单查询语句 从一个表中查询数据 复杂查询语句 多表连接查询 (将来源于多个表的列横向叠加) 内连接 左连接 右连接 全连接 自连接 非等值连接 n 复合查询(将查询结果集上下叠加) Union Union All Intersect Minus n 子查询 非关联子查询 关联子查询 查询语句语法结构 SELECT select_list #select_list 要显示的列,列之间用逗号隔开,列也称作投影 [ INTO new_table ] # 结果集导入新表 FROM [table_source] #表名 [ WHERE search_condition ] #表行过滤条件 [ GROUP BY group_by_expression ] #按照指定的列将表行分组 [ HAVING search_condition ] #对分组后的新行进行过滤 [ ORDER BY order_expression [ ASC | DESC ] ] #按照指定的1个或多个列进行排序,ASC增序,DESC降序 select中常用运算符 算数运算符: + 加法运算 - 减法运算 * 乘法运算 /或DIV 除法运算 % 或MOD 求余运算 逻辑运算符: and 而且 or 或者 xor 异或 not或! 非 比较运算符: = 等于 != 或<>不等于 > 大于 < 小于

Oracle数据库-sql语句

拥有回忆 提交于 2019-12-05 21:01:34
单表的查询语句 1、查询表的所有数据 select * from 表名;*代表所有   select * from emp; 2、查询表中指定字段的值 select 字段名1,字段名2,...from表名    select empno,ename from emp; 3、给查询结果中的字段使用别名   在字段名后使用关键字 字段名 as "别名"   作用:方便查看查询结果   注意:as关键字可以省略不写,别名中没有特殊字符双引号也可以省略不写。   select empno 员工编号,ename"员工 姓名",job as 工作,mgr as "领导编号" from emp; 4、连接符:select 字段名||'字符'||字段名||..... from 表名   ||为sql语句的字符链接符,使用在select和from之间   字符链接格式为 字段名||'字符'||字段名   注意:一个拼接好的连接在结果集中是作为一个新的字段显示,可以使用别名优化字段显示。   select empno||'的姓名是'||ename as "信息",job||'哈哈'||mgr from emp; 5、去除重复 select distinct 字段名,字段名,...fromn 表名   注意:去除重复的规则是按照行进行去除的,多行数据完全相同取其一   select distinct

oracle函数 存储过程 包 动态sql的练习

笑着哭i 提交于 2019-12-05 12:28:49
ORDERS表字段为order_id, order_date, customer_id, ship_date, total;数据来自oe.orders,主键为order_id CUSTOMERS表字段为customer_id, cust_first_name, cust_last_name, date_of_birth, marital_status, cust_email,city_name数据来自oe.customers,主键为customer_id ORDERS表与CUSTOMERS为多对1关系,需要用建立朱外键约束关系。 分析:因为orders外键依赖于customers的主键所以建表和插入数据时以customers为先 //创建customers表 create table customers (CUSTOMER_ID NUMBER(6) NOT NULL primary key , CUST_FIRST_NAME VARCHAR2(20) NOT NULL, CUST_LAST_NAME VARCHAR2(20) NOT NULL , DATE_OF_BIRTH date , MARITAL_STATUS VARCHAR2(20), CUST_EMAIL VARCHAR2(30), city_name varchar2(50) default 'luoyang'); /

SQL COUNT() 函数

做~自己de王妃 提交于 2019-12-05 04:32:40
SQL COUNT() 函数 SQL avg() SQL first() COUNT() 函数返回匹配指定条件的行数。 SQL COUNT() 语法 SQL COUNT(column_name) 语法 COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入): SELECT COUNT(column_name) FROM table_name SQL COUNT(*) 语法 COUNT(*) 函数返回表中的记录数: SELECT COUNT(*) FROM table_name SQL COUNT(DISTINCT column_name) 语法 COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目: SELECT COUNT(DISTINCT column_name) FROM table_name 注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。 SQL COUNT(column_name) 实例 我们拥有下列 "Orders" 表: O_Id OrderDate OrderPrice Customer 1 2008/12/29 1000 Bush 2 2008/11/23 1600 Carter 3 2008/10

Spark学习(2) Spark SQL

谁说我不能喝 提交于 2019-12-05 03:06:00
什么事sparkSQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用, 它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快 1)易整合 2)统一的数据访问方式 3)兼容Hive 4)标准的数据连接 SparkSQL可以看做是一个转换层,向下对接各种不同的结构化数据源,向上提供不同的数据访问方式 RDD和Dataframe和DataSet RDD: 劣势是性能限制,它是一个JVM驻内存对象, 这也就决定了存在GC的限制和数据增加时Java序列化成本的升高 , 无法使用sql进行操作 , 需要考虑怎么做 DataFrame: DataFrame更像传统数据库的二维表格,除了数据以外,还记录数据的结构信息,即schema。DataFrame除了提供了比RDD更丰富的算子以外,更重要的特点是提升执行效率、减少数据读取以及执行计划的优化,比如filter下推、裁剪 , 懒执行 定制化内存管理 DataFrame数据以二进制的方式存在于非堆内存 缺少类型安全检查 dataSet : 既具有类型安全检查也具有Dataframe的查询优化特性 DataFrame/Dataset 转 RDD : val rdd1=testDF.rdd val rdd2=testDS.rdd RDD 转