摘要:
/*--化解字符串不能超过8000的方法 经常有人提到,用动态生成SQL语句的方法处理数据时,处理语句超长,无法处理的问题 下面就讨论这个问题:--邹建 2003.9(引用请保留此信息)--*//*-- 测试环境--以系统表 syscolumns 为测试数据,要求按xtype为列字段,name为行字段,统计colid的和--要求结果xtype filedname_1 fieldname_2 ..... fieldname_n-------- -------------- -------------- -------- --------------34 0 0 ..... 1--*//*--常规 阅读全文
posted @ 2012-05-19 09:44
ChaunceyHao
阅读(181)
评论(0)
推荐(0)
摘要:
CREATE TABLE tb(Year int,Quarter int,Quantity decimal(10,1),Price decimal(10,2))INSERT tb SELECT 1990, 1, 1.1, 2.5UNION ALL SELECT 1990, 1, 1.2, 3.0UNION ALL SELECT 1990, 2, 1.2, 3.0UNION ALL SELECT 1990, 1, 1.3, 3.5UNION ALL SELECT 1990, 2, 1.4, 4.0UNION ALL SELECT 1991, 1, 2.1, 4.5UNION ALL SELECT 阅读全文
posted @ 2012-05-19 09:44
ChaunceyHao
阅读(149)
评论(0)
推荐(0)
摘要:
--雇员数据CREATE TABLE Employee(ID int, --雇员编号(主键)Name nvarchar(10), --雇员名称Dept nvarchar(10)) --所属部门INSERT Employee SELECT 1,N'张三',N'大客户部'UNION ALL SELECT 2,N'李四',N'大客户部'UNION ALL SELECT 3,N'王五',N'销售一部'--费用表CREATE TABLE Expenses(EmployeeID int, --雇员编号Date 阅读全文
posted @ 2012-05-19 09:30
ChaunceyHao
阅读(1015)
评论(0)
推荐(0)
摘要:
/*--查询新编号的示例 要求: 按id前4位分组,查询出最小一组的缺号,如果没有,则用最大组的id+1--邹建 2004.12(引用请保留此信息)--*/--测试数据create table tb(id int)insert tb select 10010001union all select 10010002union all select 10010003union all select 10010004union all select 10010005--union all select 10020001union all select 10020002union all select 阅读全文
posted @ 2012-05-19 09:19
ChaunceyHao
阅读(403)
评论(0)
推荐(0)
摘要:
--明细帐数据CREATE TABLE tb(ID int IDENTITY PRIMARY KEY,Item varchar(10), --产品编号Quantity int, --交易数量Flag bit, --交易标志,1代表入库,0代表出库,这样可以有效区分退货(负数)Date datetime) --交易日期INSERT tb SELECT 'aa',100,1,'2005-1-1'UNION ALL SELECT 'aa',90 ,1,'2005-2-1'UNION ALL SELECT 'aa',55 阅读全文
posted @ 2012-05-19 09:19
ChaunceyHao
阅读(212)
评论(0)
推荐(0)
摘要:
--生成已用编号分布字符串的函数CREATE FUNCTION f_GetStrSeries(@col1 varchar(10))RETURNS varchar(8000)ASBEGIN DECLARE @re varchar(8000),@pid int SELECT @re='',@pid=-1 SELECT @re=CASE WHEN col2=@pid+1 THEN @re ELSE @re +CASE WHEN RIGHT(@re,CHARINDEX(',',REVERSE(@re)+',')-1)=@pid THEN ' 阅读全文
posted @ 2012-05-19 09:13
ChaunceyHao
阅读(197)
评论(0)
推荐(0)
摘要:
--测试资料CREATE TABLE tb(ID1 char(2) NOT NULL,ID2 char(4) NOT NULL,col int,PRIMARY KEY(ID1,ID2))INSERT tb SELECT 'aa','0001',1UNION ALL SELECT 'aa','0003',2UNION ALL SELECT 'aa','0004',3UNION ALL SELECT 'bb','0005',4UNION ALL SELECT 'b 阅读全文
posted @ 2012-05-19 08:54
ChaunceyHao
阅读(172)
评论(0)
推荐(0)
摘要:
--测试数据CREATE TABLE tb(col1 varchar(10),col2 int)INSERT tb SELECT 'a',2UNION ALL SELECT 'a',3UNION ALL SELECT 'a',6UNION ALL SELECT 'a',7UNION ALL SELECT 'a',8UNION ALL SELECT 'b',3UNION ALL SELECT 'b',5UNION ALL SELECT 'b',6UNION ALL SE 阅读全文
posted @ 2012-05-19 08:51
ChaunceyHao
阅读(216)
评论(0)
推荐(0)
摘要:
--编号表CREATE TABLE tb_NO(Name char(2) PRIMARY KEY, --编号种类的名称Head nvarchar(10) NOT NULL DEFAULT '', --编号的前缀CurrentNo int NOT NULL DEFAULT 0, --当前编号BHLen int NOT NULL DEFAULT 6, --编号数字部分长度DESCRIPTION NVARCHAR(50)) --编号种类说明INSERT tb_NO SELECT 'CG','CG',0,4,N'采购订单'UNION AL 阅读全文
posted @ 2012-05-19 08:48
ChaunceyHao
阅读(287)
评论(0)
推荐(0)
摘要:
--1. 按拼音排序DECLARE @t TABLE(col varchar(2))INSERT @t SELECT '中'UNION ALL SELECT '国'UNION ALL SELECT '人'SELECT * FROM @t ORDER BY col COLLATE Chinese_PRC_CS_AS_KS_WS/*--结果col ---- 国人中--*/GO/*==========================================*/--2. 汉字首字母查询处理用户定义函数CREATE FUNCTION f_GetPY 阅读全文
posted @ 2012-05-19 08:44
ChaunceyHao
阅读(121)
评论(0)
推荐(0)
摘要:
/* 统计一个表中某个字符出现最多的字母*/--创建数据测试环境create table #tb(a varchar(200))insert into #tb select 'abcdasdlfjaslk;dfqwoieurwhft' union all select 'a;sldkjfal;sopqwhtdlkdafrfgsgasdfh' union all select 'asldfkworufgsea87y9oqwpe tchgwccmnqnw3 '--为字符分拆准备临时表,top 200 是根据要分拆的字符串的最大长度而定的,--在测试中 阅读全文
posted @ 2012-05-19 08:42
ChaunceyHao
阅读(314)
评论(0)
推荐(0)
摘要:
/*--示例说明: 下面的代码演示了转换pubs数据库的pub_info表中的pr_info列(text类型)为image类型 及将转换结果再转换为text的处理。--*/USE pubs--创建一个临时表,用来转换 pub_info.pr_info 列值CREATE TABLE #t(id int,a image,b text)GO--将 pub_info.pr_info 转换到 #t.a 列中DECLARE @id int,@ps binary(16),@pd binary(16)DECLARE tb CURSOR LOCAL FORSELECT pub_id,TEXTPTR(pr_inf 阅读全文
posted @ 2012-05-19 08:32
ChaunceyHao
阅读(333)
评论(0)
推荐(0)
摘要:
--1. 把一个表的text数据复制到另一个表。--测试数据CREATE TABLE #a(id int,a text)INSERT #a SELECT 1,'AA'UNION ALL SELECT 2,'BB'CREATE TABLE #b(id int,b text)INSERT #b SELECT 1,'XX'--用#a.a替换#b.b的数据,条件是#a.id=#b.idUPDATE b SET b=a.aFROM #a a,#b bWHERE a.id=b.id--把#a的数据复制到#b,条件是#a.id不在#b.id中INSERT #b 阅读全文
posted @ 2012-05-19 08:31
ChaunceyHao
阅读(244)
评论(0)
推荐(0)
摘要:
--比较第一与第二个字符串,是否有连续的5个字符相同,如果有,返回1,否则返回0if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_compstr]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[f_compstr]GOif exists (select * from dbo.sysobjects where id = object_id(N'[序数表]' 阅读全文
posted @ 2012-05-19 08:29
ChaunceyHao
阅读(207)
评论(0)
推荐(0)
摘要:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_getcharcount]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[f_getcharcount]GO--得到一个字符串在另一个字符串中出现的次数create function f_getcharcount(@str varchar(8000),@chr varchar(20)) returns intasbegi 阅读全文
posted @ 2012-05-19 08:29
ChaunceyHao
阅读(146)
评论(0)
推荐(0)
摘要:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[varbin2hexstr]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[varbin2hexstr]GO/*--varbinary转换成字符串 --邹建 2004-09(引用请保留此信息)--*//*--测试示例 select dbo.varbin2hexstr(0x1432fad)--*/create function 阅读全文
posted @ 2012-05-19 08:28
ChaunceyHao
阅读(524)
评论(0)
推荐(0)
浙公网安备 33010602011771号