- 博客(60)
- 资源 (2)
- 收藏
- 关注
原创 【叶子函数分享二十七】根据日期得到星期的函数
<br />--最直接的方式就是用case when判断,这里用表变量来处理的<br />go<br />--创建函数<br />create function [dbo].[m_getweek](@date nvarchar(2000)) <br />returns varchar(2000)<br />AS<br />begin <br /> declare @weekday nvarchar(300)<br /> declare @table table (id int ,weekda
2011-04-12 09:39:00
491
原创 【叶子函数分享二十五】从第一个汉字开始分割字符串
go--创建函数create function [dbo].[m_splitNchinese] ( @str_one nvarchar(100) )returns @result table (colone nvarchar(20),coltwo nvarchar(20))asbegin insert @result select left(@str_one,patindex('%[^_@0
2011-04-12 09:37:00
413
原创 【叶子函数分享二十四】根据年月生成日历函数
go--创建函数(第一版)(作者:dobear_0922)create function fn_Calendar(@year int, @month int)returns nvarchar(max)asbegin declare @result nvarchar(max), @Enter nvarchar(8) select @Enter = char(13)+char(10), @result = ' Sun Mon Tue Wed
2011-04-12 09:36:00
468
原创 【叶子函数分享二十三】计算两个日期之间的工作日
go--创建函数(优快云 fredrickhu(小F)提供)CREATE FUNCTION f_WorkDay( @dt_begin datetime, --计算的开始日期 @dt_end datetime --计算的结束日期)RETURNS int AS BEGIN DECLARE @workday int,@i int,@bz bit,@dt datetime
2011-04-12 09:34:00
454
原创 【叶子函数分享二十二】根据日期返回星座
<br />go<br />--创建函数(优快云 fredrickhu(小F)提供)<br />create function udf_GetStar (@ datetime)<br />RETURNS varchar(100)<br />-- 返回日期所属星座<br />BEGIN<br /> RETURN<br /> (<br /> select max(star)<br /> from<br /> (<br /> select '魔羯座' as star,1 as
2011-04-12 09:32:00
392
原创 【叶子函数分享二十一】检查给定串是否存在于由区间及点集的结合内
<br />------------------------------------<br />-- Author: happyflystone <br />-- Date:2009-07-20 <br />-- Parameter: @CardString <br />-- 被查询的串,形如:-13300001234,13300002230,13300002300<br />-- @CardNo 要查询的串<br />-- Return : int 0 -- 不存在于搜索串的范围内<br />--
2011-04-12 09:30:00
306
原创 【叶子函数分享二十】将整型数字转换为大写汉字
go--创建函数(该函数来自csdn,作者不详)create function [dbo].[m_NumToChinese](@num bigint)returns varchar(20)asbegin declare @result varchar(20),@symbol varchar(2) if @num0 select @result=substring('零壹贰叁肆伍陆柒捌玖拾',@num%10+1,1)+@result,@
2011-04-12 09:28:00
698
原创 【叶子函数分享十九】向左填充指定字符串
go--创建函数(该函数来自csdn,作者不详)create function [dbo].[padleft]( @str varchar(50), --需要填充的字符串 @totalwidth int, --填充后的长度 @paddingchar char(1)--填充使用的字符)returns varchar(1000) as begin declare @s varchar(100)
2011-04-12 09:27:00
498
原创 【叶子函数分享十八】人民币小写金额转大写
--1、人民币小写金额转大写(第一版)====================================================================-- Title: 人民币小写金额转大写-- Author: dobear Mail(MSN): dobear_0922@hotmail.com-- Environment: Vista + SQL2005-- Date: 2008-06-12-- Remark: dobea
2011-04-12 09:26:00
800
原创 【叶子函数分享十七】中缀算术转后缀算术表达式并计算的函数
--创建函数(原创:cson_cson)create function dbo.js(@bds varchar(1000))returns floatasbegindeclare @i int,@j int declare @c1 char(1),@c2 char(1),@c varchar(100)declare @v1 float,@v2 float,@v floatdeclare @t table(id int identity(1,1
2011-04-12 09:24:00
346
原创 【叶子函数分享十五】通过身份证获得户籍
go--创建函数(此函数来自于csdn,作者不详)create function [dbo].[f_getcityfromcid] (@cid varchar(18)) returns varchar(50) as begin declare @acity varchar(1000) set @acity = '____,____,____,____,____,____,____,____,____,____,
2011-04-12 09:23:00
578
原创 【叶子函数分享十四】将身份证的15位号码升级为18位
go--创建函数(此函数来自于csdn,作者不详)create function [dbo].[id15to18] (@id15 char(15)) returns char(18)as begin declare @id18 char(18) declare @s1 as integer declare @s2 as integer declare @s3 as integer d
2011-04-12 09:22:00
615
原创 【叶子函数分享十三】根据身份证计算性别函数
Go--创建函数(函数来自csdn,作者不详)create function [dbo].[Get_sex] ( @idcardno nvarchar(50))returns intasbegindeclare @sex intif (len(@idcardno)=18 and isnumeric(substring(@idcardno,17,1))=1 )set @sex= (case when substrin
2011-04-12 09:21:00
369
原创 【叶子函数分享十二】根据身份证得到生日函数
go--创建函数(函数来自csdn,作者不详)create function [dbo].[Get_birthday] ( @idcardno nvarchar(50))returns varchar(10)asbegin declare @birthday datetime if (len(@idcardno)=15 or len(@idcardno)=16) and substring(@idcardno
2011-04-12 09:20:00
412
原创 【叶子函数分享十一】取汉字首字母的两个函数
go--创建取汉字首字母函数(第一版)create function [dbo].[f_getpy_V1] (@str nvarchar(4000)) returns nvarchar(4000) asbegin declare @word nchar(1),@py nvarchar(4000) set @py='' while len(@str)>0 begin set @word
2011-04-12 09:19:00
436
原创 【叶子函数分享十】将数字转换千分位分隔形式
<br />--创建函数(原创:dobear_0922)<br />create function [dbo].[getformatstring](@dec decimal(28,8), @n int)<br />returns varchar(32) as<br />begin<br /> declare @str varchar(32), @len int, @left varchar(32), @right varchar(32),@end varchar(32)<br /> if @n!
2011-04-12 09:17:00
488
原创 【叶子函数分享九】根据字符分割字符串的三种写法
go--创建函数(第一版)create function [dbo].[m_split](@c varchar(2000),@split varchar(2)) returns @t table(col varchar(200)) as begin while(charindex(@split,@c)0) begin insert @t(col) values (s
2011-04-12 09:15:00
408
原创 【叶子函数分享八】取出字符串中的汉字、字母或是数字
<br />go<br />--创建函数(得到字符串中的汉字)<br />create function [dbo].[m_getchinese]<br />(<br /> @chinese nvarchar(max)<br />)<br />returns varchar(100)<br />as<br />begin<br /> while patindex('%[^吖-咗]%',@chinese) > 0<br /> begin<br /> set @chinese =
2011-04-12 09:13:00
352
原创 【叶子函数分享七】生成n位随机字符串
--1、借助newid()go--创建视图(因为在函数中无法直接使用newid())create view vnewidasselect newid() N'MacoId';go--创建函数create function getrandstr(@n int)returns varchar(max)asbegin declare @i int set @i=ceiling(@n/32.00)
2011-04-12 09:12:00
484
原创 【叶子函数分享六】求两个字符串中相同的汉字及字母的个数
--创建函数create function [dbo].[funcomparestring]( @stra nvarchar(200), @strb nvarchar(200))returns int asbegin declare @strbase nvarchar(200) declare @rank int select @rank=0 if len(@stra
2011-04-12 09:11:00
385
原创 【叶子函数分享五】将十进制转成十六进制
--创建函数create function [dbo].[hex](@cardno int )returns varchar (100)as begin declare @temp_mod int declare @i int declare @result varchar(100) declare @temp_x int declare @result_values int
2011-04-12 09:09:00
398
原创 【叶子函数分享四】综合模糊查询
--创建函数create function [dbo].[m_fuzzyquery_v1]( @str nvarchar(2000)) returns nvarchar(2000)as begin declare @count int,@i int; declare @newchar nvarchar(200),@nn nvarchar(300),@hh nvarchar(200)
2011-04-12 09:08:00
433
原创 【叶子函数分享二】去除字符串中连续的分割符
--创建函数create function [dbo].[m_delrepeatsplit]( @str varchar(2000), @split nvarchar(200))returns nvarchar(2000)as begin --begin declare declare @count int,@i int,@isnull int declare @new
2011-04-12 09:06:00
302
原创 【叶子函数分享三】求第一个字符串中第二个串的个数
<br />--创建函数<br />create function [dbo].[m_count]<br />(<br /> @str_one nvarchar(200), --第一个字符串<br /> @str_two nvarchar(200) --第二个字符串<br />)<br />returns int as <br />begin<br /> declare @sqlcount int<br /> select @sqlcount=(len(@str_one)-le
2011-04-12 09:06:00
339
原创 【叶子函数分享一】去除字符串中的html标记及标记中的内容
<br /><br />【叶子函数分享一】去除字符串中的html标记及标记中的内容<br />--1、创建函数<br />create function [dbo].[clearhtml] (@maco varchar(8000))<br />returns varchar(8000) as begin<br /> declare @i int<br /> while 1 = 1 <br /> begin<br /> set @i=len(@maco)<br />
2011-04-12 09:04:00
350
原创 获取拼音首字母函数
--返回汉字首字母 create function [dbo].[chinese_firstletter] ( @str nvarchar(1) ) returns nvarchar(1) as begin declare @word nchar(1),@PY nvarchar(4000) set @PY='' set @word=left(@str,1) --如果非汉字字符,返回原字符 set @PY=@PY+(
2011-04-12 08:59:00
514
原创 sql如何获取某一个表的所有字段名,并且有一个字段的统计数
<br />select name from syscolumns where id=object_id('表名')<br /><br />selectcount(1) 统计数 from syscolumns where id=object_id('表名'<br />还是要整在一个表:<br /><br />SQL code select 字段顺序='字段'+ltrim(colid),字段名=name from syscolumns where id=object_id('tb')unionallse
2011-04-12 08:51:00
902
转载 转换成为1,2,3,4,5形式
<br />合并列值 <br />--*******************************************************************************************<br />表结构,数据如下: <br />id value <br />----- ------ <br />1 aa <br />1 bb <br />2 aaa <br />2 bbb <br />2 ccc <br /><br />需要得到结果:
2011-04-12 08:48:00
444
转载 COM读写代码
<br />comm1=CREATEOBJECT("mscommlib.mscomm.1")<br /> comm1.CommPort=1 && 指定COM口<br /> IF comm1.portopen=.F. && 关闭已经打开的端口<br /> comm1.portopen=.T. && 打
2011-03-31 07:03:00
559
转载 90度旋转行列转换之一
/*<br />标题:90度旋转行列转换之一<br />作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)<br />时间:2010-05-08<br />地点:重庆航天职业学院<br />说明:无<br />*/<br />/*<br />数据库中tb表格如下<br />月份 工资 福利 奖金<br />1月 100 200 300<br />2月 110 210 310<br />3月 120 220 320<br />4月 130 230 330<br /><br />我想得到的结果是<br /><
2011-03-29 17:20:00
535
转载 sql查询时能否查询多个栏目的数据,有数组“9,13,20,22”这是栏目ID
<br />比如select * from book where bookid="9"<br /><br />想把这些栏目在一个语句中查询出来,并且是栏目参数中有“,”,谢谢<br /><br />declare@svarchar(100)<br />set@s='9,13,20,22'<br />select*from book wherecharindex(','+bookid+',',','+@s+',')>0<br /> <br />如果bookid的类型是int<br /><br />SQL co
2010-12-27 11:55:00
563
转载 普通行列转换(version 2.0)
<br />*<br />标题:普通行列转换(version 2.0)<br />作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)<br />时间:2008-03-09<br />地点:广东深圳<br />说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。<br /><br />问题:假设有张学生成绩表(tb)如下:<br />姓名 课程 分数<br />张三 语文 74<br />张三
2010-12-27 11:45:00
300
转载 SQL 外连接的疑惑
<br />根据数据库理论, 第一张表如果有m条记录, 第二张表有n条记录, 那么笛卡儿积之后, 应该有m*n条记录。 <br /><br />现在有一张表A(id ,name), 有三条记录<br /><br />id name<br />1 A<br />2 B<br />3 C<br /><br /><br /><br />表B(id)没有记录。<br /><br />执行 如下语句:<br /><br />select * from A,B<br /><br />返回0条记录, 符合数据库理论,
2010-12-27 11:43:00
417
转载 sql查询
<br />id(auto) name date time1 time2 <br />1 BICHLAM,NGUYEN 2010-12-16 08:47:00 12:04:00<br />2 BICHLAM,NGUYEN 2010-12-16 12:55:00 17:40:00<br />3
2010-12-27 10:40:00
320
转载 按某字段合并字符串之一(简单合并)
<br />/*<br />标题:按某字段合并字符串之一(简单合并)<br />作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)<br />时间:2008-11-06<br />地点:广东深圳<br /><br />描述:将如下形式的数据按id字段合并value字段。<br />id value<br />----- ------<br />1 aa<br />1 bb<br />2 aaa<br />2 bbb<br />2 ccc<br />需要得到结果
2010-12-27 10:34:00
389
转载 将每日输入明细插入到考勤表与工资表
<br />create procedure Hhwtdaypay @fid int <br />--将每日输入明细插入到考勤表与工资表<br />--插入考勤<br />declare @at varchar(20) set @at=CONVERT(varchar(100), GETDATE(), 23)<br />INSERT INTO [Hwt]([fid],[date1],[m1],[iDNO],[workhour],[zm1]<br /> ,[zm2],[createPerson],[crea
2010-12-27 10:27:00
987
转载 不知道需要多少列呢?那我怎么动态写入
<br />if OBJECT_ID('tb') is not null drop table tb<br />go<br />create table tb<br />(<br /> col1 varchar(10),<br /> col2 varchar(10),<br /> col3 varchar(10),<br /> col4 varchar(10),<br /> col5 varchar(10),<br /> col6 varchar(10),<br /> col7
2010-12-27 10:20:00
356
转载 通过sql语句找到列名字为‘date_3’的那一列对比的数据库字段不是固定的,要在date_1到date_10中筛选
<br />droptable tb<br />createtable tb<br />( <br /> col varchar(50)<br />)<br />createtable Plan_Orignal_Table1<br />( <br /> date_3 varchar(50)<br />)<br />insertinto tb values('date_1')<br />insertinto tb values('date_2')<br />insertinto tb values('date
2010-12-27 09:53:00
391
转载 按日期来动态行列转换
<br />declare@sqlvarchar(8000)<br />set@sql='select 客户 '<br />select@sql=@sql+' , sum(case 日期 when '''+ 日期 +''' then 数量 else 0 end) ['+ 日期 +']'<br />from (selectdistinctconvert(varchar(10),日期,120) 日期 from tb) as a<br />set@sql=@sql+' from tb group by 客户'<b
2010-12-27 09:37:00
1011
转载 输出为 'AAA,BBB'的形式
<br />表结构如下 <br /> ID UserName<br /> 1 AAA<br /> 2 BBB<br />我现在想将表中UserName左右值赋予一个变量,输出为 'AAA,BBB'的形式,应该写个怎样的SQL呢,在线等,谢谢 <br /> <br />declare@svarchar(8000)<br />select@s=isnull(@s+',','')+username<br />from tb<br />select@s<br /> <br />declare@svarcha
2010-12-27 09:34:00
948
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人