随笔分类 -  SQL技巧

获得汉字的拼音首字母以及整个拼音
摘要:1 SQL Server 代码: 获得首字母: CREATE function fun_getPY(@str nvarchar(4000)) returns nvarchar(4000) as BEGIN declare @word nchar(1),@PY nvarchar(4000) set @PY='' while len(@str)>0 BEGIN se... 阅读全文

posted @ 2009-01-12 17:51 优雅小猪 阅读(1171) 评论(0) 推荐(0)

char、varchar、text和nchar、nvarchar、ntext的区别
摘要:zz:http://www.builder.com.cn/2007/0730/438663.shtml 1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。 2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们... 阅读全文

posted @ 2008-12-26 15:49 优雅小猪 阅读(329) 评论(0) 推荐(0)

一个有用的T-SQL函数(取分隔字符串中的某个子串)
摘要:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER function [dbo].[Get_StrArrayStrOfIndex]( @str varchar(8000), --要分割的字符串 @split varchar(10), --分隔符号 @index int --取第几个元素 ) returns varchar(8000) a... 阅读全文

posted @ 2008-12-25 14:40 优雅小猪 阅读(1390) 评论(0) 推荐(0)

从查询结果中继续查询
摘要:SELECT * FROM ( SELECT a.*,b.BelongFloor,c.id AS UnitID,c.housename AS UnitName FROM [CRM_HouseInfo] a LEFT JOIN [CRM_RoomInfo] b ON a.[ID]=b.[HouseID] LEFT JOIN CRM_HouseInfo c ON a.[ParentID]=c.id... 阅读全文

posted @ 2008-12-18 17:12 优雅小猪 阅读(545) 评论(0) 推荐(0)

DateTime类型,插入或更改为空字符串,则会变成1900-01-01
摘要:DateTime类型,插入或更改为空字符串,则会变成1900-01-01 ms不会出错 阅读全文

posted @ 2008-12-17 14:43 优雅小猪 阅读(733) 评论(1) 推荐(0)

mysql使用备忘
摘要:使mysql写日志 编辑my.ini [mysqld] log mysql用limit分页 select * from tablename limit offset,rowcount,offset从0开始,rowcount是返回的条数 忘记密码 1、用任务管理器kill掉mysql进程 2、执行mysqld --skip-grant-tables 3、新开cmd窗口执行mysql(此时就不需要... 阅读全文

posted @ 2008-11-28 16:55 优雅小猪 阅读(216) 评论(0) 推荐(0)

主表与子表的其中一条left join
摘要:select * from fathertable a LEFT JOIN childtable d on d.HouseID = a.HouseID and d.MoveInFlag=0 and d.id=(select max(id) from childtable where houseid=a.houseid) 不能把后面的子句写在where中 阅读全文

posted @ 2008-11-21 09:26 优雅小猪 阅读(1991) 评论(0) 推荐(1)

SQL Server的几个函数
摘要:SUBSTRING(字符串,开始位置(1开始),长度) REPLACE(字符串,待搜索的字符串,替换成字符串) LEN(字符串) CONVERT(目标类型,待转换) ISNULL(是否为null的值,如果为null则为这个值) RIGHT(字符串,从右边数过来长度) CHARINDEX('>','a->b->c->d') ,结果为3 阅读全文

posted @ 2008-11-12 14:12 优雅小猪 阅读(276) 评论(0) 推荐(0)

判断SQL Server的计算列
摘要:目的:需要将一个计算列改成非计算列if columnproperty(object_id('test'),'TotalPrice',N'IsComputed')=1 BEGINprint '是计算列' ALTER TABLE test DROP COLUMN TotalPriceEND else print '不是计算列' goIF NOT EXISTS(SELECT * FROM SysObj... 阅读全文

posted @ 2008-09-19 14:36 优雅小猪 阅读(925) 评论(0) 推荐(0)

更改SQL Server字段类型
摘要:ALTER TABLE [Sales_QuoteBillDetail] ALTER COLUMN InsureBase VARCHAR(800) 阅读全文

posted @ 2008-09-11 10:47 优雅小猪 阅读(586) 评论(0) 推荐(0)

项目中SQL Server数据类型的几个问题备忘
摘要:1.datetime类型格式化:CONVERT(VARCHAR(12), c.[RegisterDate],121),121为yyyy-MM-dd2.money类型保留两位小数convert(decimal(10,2),money):这个方法不怎么好,但在项目中也能用,看看是否有更好的方法3.datetime类型时间增加一天select getdate()+1:直接加1 阅读全文

posted @ 2008-09-09 16:21 优雅小猪 阅读(277) 评论(0) 推荐(0)

SQL Server的decima的四舍五入
摘要:最近一项目,在一存储过程中使用decimal进行计算,由于没有指定小数位数,导致了四舍五入,舍去了小数。应该指定小数位数,如 declare @fee decimal(10,2) [总共10位,小数2位] 阅读全文

posted @ 2008-09-01 14:30 优雅小猪 阅读(685) 评论(0) 推荐(0)

SET NOCOUNT ON/OFF
摘要:当 SET NOCOUNT 为 ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。 当 SET NOCOUNT 为 OFF 时,返回计数(默认为OFF)。 即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft... 阅读全文

posted @ 2008-08-29 10:26 优雅小猪 阅读(9398) 评论(1) 推荐(0)

left join语句中条件不同位置对结果的影响
摘要:以下两种写法:SELECT a.*,b.id FROM [SH_StoreHouseBillDetail] a LEFT JOIN [SH_StoreHouseBill] b ON a.[StoreHouseBillID] =b.[ID] AND b.[BuyBillID]<>0SELECT a.*,b.id FROM [SH_StoreHouseBillDetail] a LEFT ... 阅读全文

posted @ 2008-08-19 14:50 优雅小猪 阅读(749) 评论(1) 推荐(0)

tsql的循环while
摘要:DECLARE @ii INTSET @ii=1while @ii<=250000begin PRINT @ii set @ii=@ii+1end 阅读全文

posted @ 2008-04-14 11:15 优雅小猪 阅读(1327) 评论(0) 推荐(0)

SQL ISNULL
摘要:ISNULL(字段,如果该字段为NULL时候返回的值)如果不是NULL,则返回原来的值 阅读全文

posted @ 2008-04-03 09:53 优雅小猪 阅读(241) 评论(0) 推荐(0)

inner join,left/right join
摘要:举个例子: 假设a表和b表的数据是这样的。 a b id name  id stock  1  a 1 15 2 b 2 50 3 c   select * from a inner join b on a.id=b.id 这个语法是连接查询中的内连接,它产生的结果是 两个表相匹配的记录出现在结果列表中。 根据上面的表,出现的结果是这样的 a.id name b.id stock ... 阅读全文

posted @ 2008-03-24 14:28 优雅小猪 阅读(461) 评论(0) 推荐(0)

存储过程接口参数增加的解决
摘要:提供默认参数,如果已有代码没有提供该参数,则按照默认值传入,不会出错 阅读全文

posted @ 2008-03-12 14:24 优雅小猪 阅读(297) 评论(0) 推荐(0)

tsql的right函数
摘要:UPDATE SH_MaterialClass SET [OrderID]=right(Code,2) WHERE [OrderID] IS NULL right('0000'+'"+ht["iOrderID"].ToString()+"',5) 阅读全文

posted @ 2008-01-02 18:18 优雅小猪 阅读(1386) 评论(0) 推荐(0)

删除用reference建立的外键
摘要:由于用reference建立的外键名字不确定,故用以下方法:DECLARE @name VARCHAR(100) SELECT @name =NAME FROM dbo.sysobjects where name like 'FK__Card_Cust__CardN__%' and OBJECTPROPERTY(id, N'IsForeignKey') = 1 exec('Alter Table ... 阅读全文

posted @ 2007-12-27 14:15 优雅小猪 阅读(371) 评论(0) 推荐(0)

导航