
SQL--(探讨)
叶子
C# ASP.NET MS-SQL SERVER
展开
-
浅谈SQL语句大小写是否区分的问题--【叶子】
一、实例介绍SQL语句大小写到底是否区分呢?我们先从下面的这个例子来看一下:例:--> 创建表,插入数据: declare @maco table (number int,myvalue varchar(2)) insert into @maco select 1,aa union all select 2,Aa union all select 3,aA原创 2008-05-27 22:23:00 · 27908 阅读 · 6 评论 -
浅谈SQL游标
<br />游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力。我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。游标允许你选择一组数据,通过翻阅这组数据记录——通常被称为数据集,检查每一个游标所在的特定的行。你可以将游标和局部变量组合在一起对每一个记录进行检查,当游标移动到下一个记录时,来执行一些外部操作。游标的另一个常见的用法是:保存查询结果以备以后使用。一个游标结果集是通过执转载 2011-04-30 22:25:00 · 2013 阅读 · 1 评论 -
SELECT的结果中出现"乱码"的解决方案--【叶子】
--测试数据declare @table table (colname varchar(8))insert into @tableselect '微•博' union allselect '团•购' union allselect '裸•婚' union al原创 2011-07-08 21:06:12 · 19284 阅读 · 6 评论 -
如何用T-SQL使用最短的语句输出100以内素数?
最近有人问我这样一个问题:如何用T-SQL使用最短的语句输出100以内素数?这个输出100以内素数貌似在多年前是比较常见的面试题,但是题目中没有强调效率,只是要求最短的语句,我表示很不理解。难不成是脑筋进转弯?PRINT '2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97'应该不是,正常原创 2011-11-18 17:13:55 · 9518 阅读 · 7 评论 -
实例详解Sql Server 所有聚合函数--【叶子】
一、Sql Server 中有哪些聚合函数?提到聚合函数大家一定会首先想到最常用的:1、 求个数:count2、 求总和:sum3、 求最大值:max4、 求最小值:min5、 求平均值:avg聚合函数中有四个函数是我一直以来几乎就没有用到过的:1、 求方差:var2、 求总体方差:varp3、 标准偏差:stdev4、 求总体标准偏差:stdevp原创 2011-11-25 15:08:26 · 28887 阅读 · 1 评论 -
详解SQL Server 比较带有尾随空格的字符串--【叶子】
前记:优快云论坛上多次出现相关问题,总结一下个人对这个问题的看法,欢迎大家共同讨论。1、问题描述declare @a varchar(10);set @a='maco 'declare @b varchar(10);set @b='maco'if(@a=@b) select '@a与@b相等'else select '@a与@b不相等'--运行结果/*@a原创 2011-11-27 14:35:16 · 6416 阅读 · 4 评论 -
SQL SERVER 得到汉字首字母函数四版全集 --【叶子】
--创建取汉字首字母函数(第三版)create function [dbo].[f_getpy_V3] ( @col varchar(1000))returns varchar(1000)as begin declare @cyc int,@len int,@sql varchar(1000),@char varbinary(20) selec原创 2012-02-06 16:01:57 · 6897 阅读 · 6 评论 -
SQL SERVER 如何处理带字母的自增列--【叶子】
--需求说明:/*id col---------- ----------AB00001 aAB00002 b--当再插入数据的时候让id自动变成AB00003*/--1.求最大值法(高并发时不适用,只是介绍个思路)--测试数据if object_id('[macotb]') is not null drop table [macotb]cre原创 2012-02-06 10:29:13 · 4493 阅读 · 0 评论 -
SQL SERVER 2000/2005/2008 一句话完成分组后加序号--【叶子】
--测试数据declare @T table (id int identity,col varchar(5))insert into @Tselect 'AAA' union allselect 'AAA' union allselect 'BBB' union allselect 'CCC' union allselect 'CCC'--SQL SERVER原创 2012-02-06 14:18:30 · 4762 阅读 · 0 评论 -
如何得到执行最耗时的前N条T-SQL语句--【叶子】
--得到最耗时的前N条T-SQL语句--适用于SQL SERVER 2005及其以上版本--给N赋初值为30declare @n int set @n=30 ;with maco as ( select top (@n) plan_handle, sum(total_worker_time) as total_wo原创 2012-02-06 14:53:37 · 4699 阅读 · 2 评论 -
SQL SERVER 特殊需求的一个替换实例 --【叶子】
需求贴:http://topic.youkuaiyun.com/u/20120204/10/8b902fd2-8909-4ed9-b534-4a1a72454eff.html#r_77443331需求简介:比如:YYYYN, 结果处理为:人1,人2,人3,人4分析:貌似就是一个字符串的替换,如果是'Y'替换成'人'+Y的所在位置的编号。解决方案:declare @T table原创 2012-02-04 20:27:04 · 1805 阅读 · 1 评论 -
SQL SERVER 正则替换实例分享--【叶子】
--====================================--标题: 应用实例之SQL SERVER 正则替换--作者:maco_wang--时间:2012-03-24--说明:MS-SQL SERVER 中的正则替换--补充说明:支持一下优快云社区支持的活动--====================================/*假设测试数据为:co原创 2012-03-24 15:09:52 · 5417 阅读 · 1 评论 -
SQL Server 得到数据库中所有表的名称及数据条数
提到单个表的数据条数,大家都会想到 select count(*) from tablename如果是要得到数据库中所有表的条数呢?我们来看几种最常见的方式:--方法一if exists ( select * from dbo.sysobjects where id = object_id(N'[dbo].[TableSpace原创 2012-04-05 14:07:32 · 15894 阅读 · 0 评论 -
SQL SERVER 正则匹配实例分享--【叶子】
--====================================--标题: 应用实例之SQL SERVER 正则匹配--作者:maco_wang--时间:2012-03-25--说明:MS-SQL SERVER 中的正则匹配--====================================/*假设测试数据为:col----------a b d c e原创 2012-04-09 09:38:49 · 17140 阅读 · 1 评论 -
SQL Server 2012 OFFSET/FETCH NEXT分页示例
原文:http://beyondrelational.com/modules/29/presentations/483/scripts/12983/sql-server-2012-server-side-paging-demo-using-offsetfetch-next.aspx?utm_source=brnewsletter&utm_medium=email&utm_campaign=2012翻译 2012-04-11 21:24:46 · 10053 阅读 · 8 评论 -
this database does not have a valid owner 的解决办法--【叶子】
前记:别人给我一个数据库备份文件,我本地还原后,打算创建Database Diagram,遇到如下错误:错误信息:Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Fi原创 2012-07-20 14:03:03 · 2940 阅读 · 0 评论 -
SQL Server 数据库巡检脚本
SQL Server 数据库巡检脚本原创 2013-03-25 23:10:06 · 9551 阅读 · 7 评论 -
SQL SERVER 中处理分母为0的情况
<br />首先写个测试数据,然后我们来求一下colone除以coltwo的商<br />declare @table table(id int,colone numeric(4,2),coltwo numeric(2,1))<br />insertinto @table<br />select 1,1.2,0.4 unionall<br />select 2,1.4,0.6 unionall<br />select 3,1.8,0.8 unionall<br />select 4,9.1,1.2 unio原创 2011-04-21 21:17:00 · 11113 阅读 · 2 评论 -
SQL调优公式T=S/V
<br />比较愚钝,从事调优工作这么些年,处理过的性能问题也不少,也就总结出这么个公式来<br /> <br />S指sql所需访问的资源总量,V指sql单位时间所能访问的资源量,T自然就是SQL执行所需时间了<br /> <br />这个公式很简单,调优的目标是减少T,T=S/V,那么我们要调的对象自然就要放到这里的S和V上,调优的方法就是围绕减少S和增大V<br /> <br />增大V(单位时间所能访问的资源量),在硬件设备不变的情况下所能做的只有充分利用现有资源,如:通过调整SGA充分利用物理ME转载 2011-03-31 22:53:00 · 2359 阅读 · 0 评论 -
实例分析varchar和nvarchar的区别--【叶子】
一、整体介绍1、varchar(n) (1) 长度为n个字节的可变长度且非Unicode 的字符数据。 (2) n 必须是一个介于1和8,000 之间的数值。(3) 存储大小为输入数据的字节的实际长度,而不是n个字节。2、nvarchar(n) (1) 包含n个字符的可变长度Unicode字符数据。 (2) n 的值必须介于1与4,000 之间。 (3) 字节的原创 2008-06-30 10:06:00 · 3643 阅读 · 8 评论 -
浅淡sql如何随机取指定范围的数值--【叶子】
1、如果在数据库中我们想要随机取到两个数值之间的整数,我们可以这样处理 随机取1到3之间的整数:select round(rand()*2+1.0,0)go 10 随机取6到9之间的整数:select round(rand()*3+6.0,0)go 10 2、我们可以进行精度上的控制 --随机取n到m之间的数值create table t原创 2009-02-19 15:42:00 · 3441 阅读 · 0 评论 -
实现将一个正整数随机拆分为三个正整数-- 【叶子】
一、在sql中实现将一个正整数随机拆分为三个正整数 1、sql代码declare @i int set @i =100;--要拆分的正整数declare @j int set @j =round(rand()*@i+1.0,0)declare @k int select @k=round(rand()*(@i-@j)+1.0,0) dec原创 2009-02-23 09:07:00 · 3157 阅读 · 0 评论 -
对数据库进行定时热备份 --【叶子】
-- =================================-- Author:-- CreateDate:2009-03-11 10:34:05-- Description:数据库定时热备份>-- =================================use msdbcreate procedure hot_backupasbegin原创 2009-03-11 15:37:00 · 2079 阅读 · 0 评论 -
isnull动态处理所有的动态列 --【叶子】
isnull动态处理所有的动态列-- =================================-- Author:-- CreateDate:2009-04-03 13:15:35-- Description:处理一个表的所有为空列,列是动态添加后的不固定列>-- =================================create procedure原创 2009-04-03 13:32:00 · 2219 阅读 · 1 评论 -
escape在sqlserver中的使用--【叶子】
escape在sqlserver中的使用--【叶子】 1、escape是干什么用的?escape相对于转移字符 2、escape在什么情况下使用?举例说明:例如我们要进行模糊查询: --测试数据declare @tablea table (id int ,col varchar(20))insert into @tableaselect 1原创 2009-09-10 23:33:00 · 5315 阅读 · 2 评论 -
简述一个关于null的理解误区:null不等于null--【叶子】
前记:总有人问我null为什么不等于null 首先写一个简单的例子 declare @table table(id int ,col varchar(20))insert into @tableselect 1,bag union allselect 2,null union allselect 3,ball select * from @table原创 2009-09-10 23:50:00 · 4436 阅读 · 3 评论 -
write在sqlserver中的使用--【叶子】
我用一个简单的例子来说明一下: --下面是一个表:declare @table table (id int identity(1,1),window nvarchar(max))insert into @table (window)select AAAA1111 union allselect AAA111 union allselect AA11sel原创 2009-09-11 00:06:00 · 2349 阅读 · 0 评论 -
如何创建动态数据列--【叶子】
首先我先写一个小例子 declare @table table(a int,b int) insert into @table select 2,3 select a,b,a+b as col_add,a*b as col_ji from @table /*结果 a b col_add col_ji---原创 2009-09-11 22:56:00 · 1344 阅读 · 3 评论 -
Sqlserver 中必须使用分号的两种情况--【叶子】
用习惯了oracle后,习惯在每个语句结束后以(;)结尾。但是在sql中有哪些情况是必须使用分号的呢? 从一些英文文献中发现: There are two situations in which you must use the semicolon. The first situation is where you use a Common Table Expressi原创 2009-09-12 11:17:00 · 7587 阅读 · 1 评论 -
Sql示例说明如何分组后求中间值--【叶子】
这里所谓的分组后求中间值是个什么概念呢?我举个例子来说明一下:假设我们现在有下面这样一个表: type name price----------- ---- ------------2 A 5.42 A 3.72 B 4.31 B 4.72原创 2009-09-11 23:19:00 · 2188 阅读 · 1 评论 -
Sqlserver 纯粹意义上的行列转换--【叶子】
首先还是用例子来说明一下这个我所谓的“纯粹意义” 假设有下面这样一个表: CID AID Q---- ---- -----------C1 M1 1C2 M1 2C3 M1 3C4 M2 1C5 M2 2我们要得到的效果是这样的: 字段 1 2 3 4 5---- ----原创 2009-09-12 11:34:00 · 1379 阅读 · 0 评论 -
Sqlserver普通的CTE递归示例--【叶子】
--创建表declare @T table (ID int,pid int,NAME varchar(6))insert into @Tselect 1,0,上衣 union allselect 2,0,鞋子 union allselect 3,0,裤子 union allselect 4,1,毛衣 union allselect 5,1,衬衫 un原创 2009-09-14 23:14:00 · 1613 阅读 · 0 评论 -
查找数据库中含有某字段的所有表 --【叶子】
--含有医院编号字段的所有表select a.[name] 表名from sysobjects a,( select [id],count(*) b from syscolumns where [name] =HospitalId group by [id]) b where a.[id]=b.[id] --同时含有医院编号和原创 2009-10-26 12:09:00 · 2354 阅读 · 1 评论 -
TSQL与PL/SQL的比较
TSQL与PL/SQL的区别比较转载 2011-03-26 11:05:00 · 6891 阅读 · 0 评论 -
用SQL实现12345的所有排序序列--【叶子】
怎么样用SQL来实现12345的排序?显然排序结果应该有5的阶乘个,也就是120个结果。怎么样来处理,我也没有想到没有好的办法,毕竟SQL SERVER是数据库,不是专门用来搞算法的。但是巧合这里的12345是数字,貌似可以用int循环来处理,简单写一下,抛砖引玉。setnocountondeclare @btime datetime;set @btime=getdate()declare @i int;set @i=12345declare @j varchar(5);declare @k intdecl原创 2011-03-29 22:10:00 · 3732 阅读 · 0 评论 -
简介SQL SERVER 2014主要功能
Microsoft SQL Server 2014已经内置最新的安全、功能更新。微软将在4月1日,即Build2014开发者大会期间开放SQL Server 2014资源下载服务。 Microsoft SQL Server 2014为市场带来了部署到核心数据库中的新内存功能,包括内存 OLTP,它是对市场上大多数综合内存数据库解决方案的现有内存数据仓库和 BI 功能的补充。原创 2014-03-31 23:56:34 · 14231 阅读 · 0 评论