SQL备份
蓝色韵脚
这个作者很懒,什么都没留下…
展开
-
数字、中文 排序方法
create table #mytest(unit_no varchar(30)) insert into #mytest values ('12橦87(店面)'),('3'),('1'),('2'),('6'),('4'),('5'),('21'),('排序'),('28'),('20'),('18') select * from #mytest order by ISNUME原创 2015-11-12 14:49:26 · 522 阅读 · 0 评论 -
sql server系统表的用法
--查看表的属性select * from sysObjects where [Name] = 'section' --用法 if exists ( select * from sysObjects where [Name] = 'section' and xtype='U' ) Drop Table table1 go Create table1 ( )转载 2015-11-13 22:52:59 · 264 阅读 · 0 评论 -
SQL优化方法汇总
1、升级硬件 2、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。3、扩大服务器的内存4、增加服务器CPU个数5、对于大的数据库不要设置数据库自动增长,它会降低服务器的性能6、在查询Select语句中用Where字句限制返回的行数,避免表扫描,如果返回不必要的数据,浪费了服务器的I/O资源,加重了网络的负担降低性能。如果表很大,在表扫描的期间将表锁住,禁止其转载 2015-11-13 18:48:37 · 272 阅读 · 0 评论 -
使用pivot和unpivot语句实现行转列,列转行
在做报表时,经常需要将数据表中的行转列,或者列转行,如果不知道方法,你会觉得通过SQL语句来实现非常难。这里,我将使用pivot和unpivot来实现看似复杂的功能。引用MSDN:可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。转载 2015-11-13 17:48:00 · 1601 阅读 · 0 评论 -
一条sql语句查出多个表的数据
select (select count(1) from a) as a,(select count(1) from b) as b原创 2015-11-12 21:51:40 · 3301 阅读 · 0 评论 -
with ties 的用法
create table #Stuscore(name nvarchar(20),score int)insert into #Stuscore values ('陈一',100),('张二',100),('王五',90),('李四',80);select top 1 with ties * from #Stuscore order by score desc原创 2015-11-12 18:34:12 · 4580 阅读 · 0 评论 -
用SQL语句写某一月份的日历
Declare @Date datetime, @StartDate datetime, @EndDate datetime, @FirstIndex intSet @Date ='20100610' --输入一个日期,即可算出当月的日历Select @StartDate=Convert(char(6),@Date,112)+'01',原创 2015-11-12 22:02:35 · 912 阅读 · 0 评论 -
sql cte 递归用法
今天看别人用sql语句写出了一个日历,感觉挺不错的。语句里面用了sql的CTE这个是在sql2005才出现的,主要方便在sql里面实现递归。于是自己就写了一个递归的小例子。create table Test(id varchar(30),name varchar(30),par_id varchar(30),)insert Test select '001','湖北原创 2015-11-12 22:00:49 · 479 阅读 · 0 评论 -
SQL高级查询技巧
关键字: sql研究 1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。 当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。转载 2015-11-13 17:41:35 · 346 阅读 · 0 评论 -
Oracle 工作语句记录
SELECT LEVEL l FROM dual CONNECT BY LEVEL<=5------------------华丽的分隔线----------with tas( select '男;女;其他' txt from dual)select regexp_substr(txt,'[^;]+',1,level) txt from t connect by原创 2015-11-13 17:31:08 · 265 阅读 · 0 评论 -
判断某个字符是否在结果集中
declare @test table(groupID nvarchar(30));insert into @test values ('110A0'),('110B0'),('110C0'),('110D0');--select * from @test declare @str nvarchar(500),@pro nvarchar(300)set @str=(select原创 2015-11-13 17:34:47 · 320 阅读 · 0 评论 -
一条金典的SQL查询,结合了 for xml、Pivot、ISNULL 应用示例
首先看看要实现的数据和要实现的结果图:use mastercreate table tb(项目名 nvarchar(300),专业名 nvarchar(300),文件名 nvarchar(300));insert into tb values ('项目A', '油','油-1'),('项目A','油','油-2'),原创 2015-11-13 17:32:34 · 1268 阅读 · 0 评论 -
Oracle 自定义函数示例
CREATE OR REPLACE FUNCTION strgetdomse(p_string2 VARCHAR2,p_string VARCHAR2)RETURN NUMBERAS --declare --p_string VARCHAR2(100):='BBB'; -- p_string2 VARCHAR2(100):='CC,AA,BB,DD'; v_原创 2015-11-12 14:43:12 · 282 阅读 · 0 评论 -
SqlServer中生成1~23之间的连续数字
--方法1:declare @i int=1,@sql nvarchar(1000);while(@i<=23)beginset @sql =isnull(@sql+' union select ','select ')+cast(@i As nvarchar);set @i=@i+1;endexec(@sql) --方法2SELECT number FROM MASTER原创 2015-11-12 14:19:47 · 2719 阅读 · 0 评论 -
更新数据表中的字段
更新T表中的cnt字段,更新规则如下:如果cnt小于11,更新为10,如果cnt大于18更新为15,其他的更新为13(限定:用一条SQL语句实现)declare @tt table(cnt int);insert into @tt values (8),(20),(12),(14),(100);select * from @tt;update @tt set cnt=原创 2015-11-12 14:08:14 · 731 阅读 · 0 评论 -
表中有A列和B列,对A列数据去重复,对B列数据排序
declare @tt table(a int,b int);insert into @tt values (11,12),(13,13),(11,30),(14,50),(23,12);select * from @tt;select * from (select a,MIN(b) bb from @tt group by a )tab order by bb;或者 s原创 2015-11-12 14:05:13 · 1037 阅读 · 0 评论 -
SQL字符串截取
今天哥们问了我一个这样的问题,用sql语句截取“abcd1234abe” 这个里面的abe经过测试终于搞定,现记录如下select SUBSTRING('abcd1234abe',(select (PATINDEX('%%','abcd1234abe')+6) as firstindex),(select ((select PATINDEX('%%','abcd1234abe'))原创 2015-11-12 15:22:08 · 419 阅读 · 0 评论 -
SQL操作全集
下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREA原创 2015-11-12 15:05:13 · 201 阅读 · 0 评论 -
在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)
1、启用Ad Hoc Distributed Queries在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的启用Ad Hoc Distributed Queries的方法SQL Server 阻止了对组件 'Ad Hoc Distributed转载 2015-11-13 22:53:44 · 346 阅读 · 0 评论