代码改变世界

K/3 BOM多级展开

2014-03-24 19:44 by dsding, 830 阅读, 0 推荐, 收藏,
摘要:上图是一个树状BOM,加色部分是原材料。下图是简单新增的三张表,一个物料表,一个是BOM表头,一个是BOM表体。再下面是多级查询后的结果,查询分三层,ID为2是自制件,ID为1是外购件。SQL 脚本如下,可能还有可以改动的地方DECLARE @Level INTSET @Level = 0CREATE TABLE #GroupData( FLevel INT NOT NULL, FItemID varchar NOT NULL, id char NOT NULL)Create Index #idx_parentid on #Group... 阅读全文

删除字符串尾数连续为零的自定义函数

2013-11-20 15:27 by dsding, 293 阅读, 0 推荐, 收藏,
摘要:最近工作中遇到一个问题,需要将一个varchar字段尾数连续为零的部分删除掉。SQL SERVER系统函数实现不了,只有想办法自定义函数来实现了。 函数代码如下:CREATE FUNCTION [dbo].[zerosc](@obj Nvarchar(255)) returns Nvarchar(255) AS BEGIN declare @i int,@K int,@j Nvarchar(255) select @j=@obj select @i=0, @K=LEN(@j) IF CHARINDEX('.',@j)=0 return (@j) ELSE WHILE(SUBST 阅读全文

T_SQL 转换函数

2013-11-02 19:53 by dsding, 151 阅读, 0 推荐, 收藏,
摘要:T_SQL 有两个转换函数,一个是CONVERT ,函数原型:CONVERT ( data_type [ ( length ) ] , expression [ , style ] ),另个是CAST,函数原型:Cast(Expression as data_type) ,两者除了语法上有差别以外,功能基本一致,都可以做强制转换,此外,CONVERT 可以格式化日期和数值。举个例子:select CAST('123.4' as decimal(9,2)) : 123.40select CONVERT(decimal(9,2), '123.4') :123.40C 阅读全文