SQL
申公
做一个有逼格的程序员
展开
-
时间相加减函数
--时间减1函数CREATE FUNCTION f_DateADD(@Date datetime,@DateStr varchar(23))RETURNS datetimeASBEGIN DECLARE @bz int,@s varchar(12),@i int IF @DateStr IS NULL OR @Date IS NULLOR(CHARINDEX('.',@DateStr)>0AND @DateStr NOT LIKE '%[:]%[:]%.%')RETURN(NULL)IF @Date原创 2010-07-20 11:17:00 · 1025 阅读 · 0 评论 -
SQL删除重复数据只保留一条
用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId havi转载 2013-06-17 15:45:43 · 1266 阅读 · 0 评论 -
sql中 with rollup 、with cube、grouping 统计函数用法
SQL codewith rollup 、with cube、groupingCUBE 和 ROLLUP 之间的区别在于:CUBE 生成的结果集显示了所选列中值的所有组合的聚合。ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。grouping:当用 CUBE 或 ROLLUP 运算符添加行时,附加的列输出值为1,当所添加的行不是由 CUBE 或 ROLLUP转载 2013-05-15 13:59:29 · 699 阅读 · 0 评论 -
sql server ROW_NUMBER (Transact-SQL) 分组查询
ROW_NUMBER (Transact-SQL)SQL Server 2012其他版本5(共 5)对本文的评价是有帮助 - 评价此主题返回结果集分区内行的序列号,每个分区的第一行从 1 开始。 Transact-SQL 语法约定语法转载 2013-05-15 11:30:00 · 1320 阅读 · 0 评论 -
SQL NOT IN NULL的问题
在sql查询中,有时候会遇到如下情况:两个表table1(10万条唯一的记录,table2(1万条唯一的记录)都只有一个字段:col001 在执行:select count(*) from table1 where col001 not in (select col001 from table2)时,如果table2中有null的话,这句话就有可能执行的转载 2013-05-24 08:43:26 · 1046 阅读 · 0 评论 -
rank,dense_rank,row_number使用和区别
rank,dense_rank,row_number区别一:语法(用法): rank() over([partition by col1] order by col2) dense_rank() over([partition by col1] order by col2) row_number() over([partition by col1] or转载 2013-05-15 13:49:42 · 780 阅读 · 0 评论 -
SQLServer 的视图
(1)视图的定义: 视图是由一个查询所定义的虚拟表,它与物理表不同的是,视图中的数据没有物理表现形式,除非你为其创建一个索引;假如查询一个没有索引的视图,Sql Server实际访问的是基础表。 视图在我们日常操作也扮演着许多重要的角色,比如可以利用视图访问经过筛选和处理的数据,而不是直接访问基础表,以及在一定程度上也保护了基础表。(2)视图的创建转载 2012-04-27 17:47:03 · 2504 阅读 · 0 评论 -
SQL中使用update inner join和delete inner join
<br />Update XXX set XXX where 这种写法大家肯定都知道,才发现update和delete居然支持inner join的update方式,太神奇了。分享段示例代码:view sourceprint?1updatetb_User 2setpass=''3fromtb_User usr 4innerjointb_Address addr onusr.nAddressFK = addr.nAddressID 5whereusr.id=123<br />update的格式是<br />u原创 2011-03-31 16:20:00 · 2914 阅读 · 0 评论 -
查询同一表内多字段同时重复记录的SQL语句
<br />比如现在有一人员表 (表名:peosons)<br />若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来<br />select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address<br />可以实现上述效原创 2011-02-18 08:53:00 · 993 阅读 · 0 评论 -
ORACLE 用SQL同一列的多行记录拼接成一个字符串
-- 原始数据 -- a 111 -- b 222 -- a 333 -- a 444 -- b 555 -- 最终结果 -- a 111*333*444 第一种方案:SELECT L4.BL_NO,L4.SAILING_DT,L4.VESSEL_CD,L4.VOYAGE,L4.CURRENCY_CD,原创 2015-10-22 14:23:07 · 7925 阅读 · 0 评论