摘要:在做一些对比的报表查询是有些情况下需要计算出这个报表中的每一行数据的对比, 比如每周的小计和上周对比, 这个时候就需要对读取每一行的数据进行计算,如果在程序中读取数据然后使用程序脚本进行计算的话是很容易的, 但是如果是必须使用纯SQL语句写的话,大多数人都会想到使用游标, 可是游标的效率却又让人不敢...
阅读全文
摘要:Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE...
阅读全文
摘要:比如现在又一个表A 里面有字段 ID和Name 那么基本语法是 mergeA as a using (select'1' as ID , '张三' as Name) as b on a.ID=b.IDwhen not matched theninsert( ID,Name)values(b.ID,b...
阅读全文
摘要:创建一个临时表的时候.如果不指定列的长度,则临时表列的长度会根据所参照的表的对应列的大小,如 --创建一个表 Create table tmp1 (tmp1 varchar(3)) --创建临时表select tmp1.tmp1 as tmp2 into #tmp2 from tmp1 --第一条语...
阅读全文
摘要:例子table1结构如下id intname varchar(50)declare @id intdeclare @name varchar(50)declare cursor1 cursor for --定义游标cursor1select * from table1 --使用游标的对象(跟据需要填...
阅读全文
摘要:GROUPING 是SQL SERVER中的一个函数。 指示是否聚合 GROUP BY 列表中的指定列表达式。在结果集中,如果 GROUPING 返回 1 则指示聚合;返回 0 则指示不聚合。如果指定了 GROUP BY,则 GROUPING 只能用在 SELECT 列表、HAVING 和 OR...
阅读全文
摘要:下表列出了 GROUP BY 错误消息以及帮助解决错误的建议。 错误号 错误消息 如何解决错误 102 “,”附近有语法错误。 重写查询,以便分组集作为显式 GROUPING SETS 列表的一部分显示在 GROUP BY 子句中。例如,GROUP BY C1, (...
阅读全文
摘要:提高SQL执行效率的几点建议: ◆尽量不要在where中包含子查询; 关于时间的查询,尽量不要写成:where to_char(dif_date,'yyyy-mm-dd')=to_char('2007-07-01','yyyy-mm-dd'); ◆在过滤条件中,可以过滤掉最大数量记录的条件必须放在w...
阅读全文
摘要:1.尽量不要对列名进行函数处理。而是针对后面的值进行处理 例如where col1 = -5的效率比where -col1=5的效率要高 因为后面的条件对列值进行了计算。这样的条件下优化器无法使用索引 而是要针对所有值进行计算之后才能再比较 2.尽量使用和数剧列一样的值进行操作 如果col1是数值型...
阅读全文
摘要:SQL随机查询语句,[数据库使用技巧]SQL语句生成随机数,如何随机显示sql查询语句查询的数据记录集中的20条,随机取出若干条记录的SQL语句,使用SQL语句取随机数的方法 方法如下: ◆SQL Server:Select TOP N * From TABLE order By NewID() ◆...
阅读全文
摘要:下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,R...
阅读全文
摘要:having子句与where有相似之处但也有区别,都是设定条件的语句。 在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行优先级别优先于聚合语句(sum,min,max,avg,count)。 简单说来: where...
阅读全文
摘要:触发器 1、触发器的 '本质': 触发器是一种特殊的存储过程,它不能被显式地调用, 而是在往表中插入记录、更改记录或者删除记录时,当事件发生时,才被 自动地激活。 2、这样做带来的 '功能': 触发器可以用来对表实施复杂的完整性约束,保持数 据的一致性,当触发器所保护的数据发生改变时,...
阅读全文
摘要:SQL触发器语法参考CreateTRIGGER trigger_nameON { table | view }[ WITH ENCRYPTION ]{ { { FOR |AFTER | INSTEAD OF } { [ Insert ] [ , ] [ Update ] } [ WITH APPEN...
阅读全文
摘要:table表中2个字段 age name 20 aa 30 bb 35 cc 40 dd 50 ee 70 ff 使用SQL语句查询得到结果如下: 年龄段 数目 青年 1 中年 3 老年 2 注:年龄小于30为青年,31到49为中年,50以上为老年。 请问SQL语句怎么写?好评率:100%给你一个参...
阅读全文
摘要:上没区别。只是函数有如:只能返回一个变量的限制。而存储过程可以返回多个。而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。执行的本质都一样。 函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少 1. 一般来说,存储过程...
阅读全文
摘要:有例表:emp emp_no name age 001 Tom 17 002 Sun 14 003 Tom 15 004 Tom 16 要求: 列出所有名字重复的人的记录 (1)最直观的思路:要知道所有名字有重复人资料,首先必须知道哪个名字重复了: select name from emp ...
阅读全文
摘要:1.--添加一条记录 2. insert into tableName(col1,col2,col3) values (val1,val2,val3) 3.--添加多条记录 4. insert into tableName(col1,col2,col3) 5. select val1,val2,va...
阅读全文
摘要:SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等,每个对象在表中占一行。以下是此系统表的字段名称和相关说明。 type in ()的例子: type in (N'P', N'PC')type in (N'U') Name,id,x...
阅读全文
摘要:1. 查看数据库的版本 select @@version 2.查看数据库所在机器操作系统参数 exec master..xp_msver 3. 查看数据库启动的参数 sp_configure 4.查看数据库启动时间 select convert(varchar(30),login_time,120)...
阅读全文