
应用实例
zjcxc
这个作者很懒,什么都没留下…
展开
-
姿势很重要--记一次字符筛选的处理
最近处理了一个需求,找出数据中的所有生僻字,数据约1000万条,每条大约20多个字,结果文件500M。生僻字的判断标准是二级字库(600多个字)外的所有字都算生僻字。 最开始的想法很简单,两个循环:每条记录,针对二级字库中的每个字替换一次,输出结果。Powershell 脚本做这个操作So easy,跑起来之后,告知需求方第二天拿结果(1000万*6000的循环,想想也知道要跑很久)、 然后到了第二天,这个处理还没结束,由于没有输出进度,所以无法判断处...原创 2021-05-29 10:19:28 · 227 阅读 · 0 评论 -
随机排序分页处理示例
/*--原帖地址:http://community.youkuaiyun.com/Expert/topic/3845/3845647.xml?temp=.7272455--*//*--处理要求用如下语句可以实现随机排序:select * from xiaofei where status=1 order by newid()这样的话每次用户刷新页面排序就会变.现在我想做成不同用户进来页面看到的排序原创 2005-03-16 09:18:00 · 7189 阅读 · 1 评论 -
逐月对比的交叉表处理
/*--原帖地址:http://community.youkuaiyun.com/Expert/topic/3841/3841808.xml?temp=.4308588--*/--测试数据create table tb(year int,month int,No varchar(10),Name varchar(10),部门 varchar(10),工资 int)insert tb select 2004原创 2005-03-16 08:52:00 · 3358 阅读 · 0 评论 -
报表统计
/*--原帖地址:http://community.youkuaiyun.com/Expert/topic/3826/3826130.xml?temp=.4175836--*/--示例数据--建企业名称表CREATE TABLE qiye (qiyemingcheng char(16),xingzhi char(4),shunxu int)insert into qiye select 企业甲,国有,原创 2005-03-16 10:41:00 · 3418 阅读 · 0 评论 -
根据当月数据库自动生成下个月数据库--3
--创建一个每月最后一个工作日执行的作业,调用上述存储过程实现自动创建数据库use mastergo--设置 SQL Agent 服务为自动启动exec msdb..sp_set_sqlagent_properties @auto_start=1go--创建作业exec msdb..sp_add_job @job_name=N自动建库处理--创建作业步骤declare @原创 2005-03-16 10:34:00 · 3665 阅读 · 0 评论 -
根据当月数据库自动生成下个月数据库--2
--方法2. 脚本复制use mastergoif exists (select * from dbo.sysobjects where id = object_id(N[dbo].[sp_ProcCopyDb]) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure [dbo].[sp_ProcCopyDb]GO/*--数据库自动原创 2005-03-16 10:32:00 · 3573 阅读 · 1 评论 -
逐记录导出text/ntext字段值为文本文件
/*--原帖地址:http://community.youkuaiyun.com/Expert/topic/3851/3851741.xml?temp=.4726831--*/--测试数据create table tb(id varchar(50) primary key,detail text)insert tb select aaa,11111union all select bbb,4原创 2005-03-16 09:30:00 · 3937 阅读 · 1 评论 -
无规律自定义分段的分类汇总+交叉表处理
/*--原帖地址:http://community.youkuaiyun.com/Expert/topic/3845/3845290.xml?temp=.3689386--*/--测试数据create table tb(编号 int,性质 varchar(10),数量 int,指标1 decimal(10,1),指标2 decimal)insert tb select 1 ,00 ,10,1.1 ,1原创 2005-03-16 09:02:00 · 3831 阅读 · 0 评论 -
特殊分页处理
原帖地址:http://community.youkuaiyun.com/Expert/topic/3662/3662135.xml?temp=.4289972--测试数据create table tb(ID int primary key,grade varchar(10),uptime datetime)insert tb select 1 ,a,2004-12-11union all sel原创 2004-12-22 14:05:00 · 4501 阅读 · 2 评论 -
树形数据转换
原帖地址:http://community.youkuaiyun.com/Expert/topic/3663/3663934.xml?temp=.9100458--测试数据create table PROJECT(id int,name nvarchar(20),parent_id int)insert PROJECT select 1,所有项目,nullunion all select 2原创 2004-12-22 13:56:00 · 4628 阅读 · 1 评论 -
自定义公式的计算处理
原帖地址:http://community.youkuaiyun.com/Expert/topic/3485/3485588.xml?temp=.8813745--示例数据create table sale(date datetime,code varchar(10),amt int)insert sale select 2004-10-22,aa,15000union all select原创 2004-10-24 15:47:00 · 4054 阅读 · 2 评论 -
根据排序定义表排序数据
根据排序定义表排序数据 测试数据:create table tb1(id int,col1 varchar(10),col2 int)insert tb1 select 1,aa,111union all select 2,aa,111union all select 3,aa,111union all select 4,bb,222union all select 5,原创 2005-03-21 19:08:00 · 3423 阅读 · 2 评论 -
实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
问题描述:某个基础信息表,与系统中30多个表存在外键关系,当删除基础数据时,需要判断是否已经被用过,如果用过则更改标志位,如果没有用过则直接删除,如何能很好实现这个处理?最好能够自动适应表的变化 问题解决(SQL Server 2005)-- SQL Server 2005的错误处理容易控制, 因此, SQL Server 2005中可以直接删除, 通过错误处理原创 2006-09-18 11:30:00 · 13004 阅读 · 10 评论 -
记录一下这个有点绕的数据分配查询
在论坛上看到这样一个需求,有两个表,数据分别如下 表A (id, name, value ) (1, ‘A’, 2000), (2, ‘A’, 2000) 表B (id, a_name, name, value) (1, ‘A’, ‘A1’, 1000), (2, ‘A’, ‘A2’, 2000), (3, ‘A’, ‘A3’, 3000) 要求根据表A的 value 值,查询...原创 2018-08-25 13:20:35 · 1192 阅读 · 3 评论 -
带进度的SQL Server FileStream存取
SQL Server FileStream 功能的详细参考联机帮助设计和实现 FILESTREAM 存储 这里只是把使用 Win32 管理 FILESTREAM 数据的代码调整了一下,实现带进度的存取,这对于存取较大的文件比较有意义 要使用FileStream,首先要在 SQL Server配置管理器中打开FileStream选项:SQL Server配置管理器–SQL Server服务原创 2015-12-08 13:42:17 · 7945 阅读 · 2 评论 -
使用更改跟踪实现数据同步
SQL Server 2008 引入了更改跟踪,这是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制。通常,若要使应用程序能够查询对数据库中的数据所做的更改和访问与这些更改相关的信息,应用程序开发人员必须实现自定义更改跟踪机制。创建这些机制通常涉及多项工作,并且常常涉及使用触发器、timestamp 列和新表组合来存储跟踪信息,同时还会涉及使用自定义清除过程。通过更改跟踪,可原创 2009-02-23 06:59:00 · 9905 阅读 · 6 评论 -
乘车线路查询
背景有如下表示乘车线路和站点的数据,要求查询出指定站点之间的所有乘车线路:USE tempdbGO -- 模拟数据SET NOCOUNT ONIF OBJECT_ID(Ntempdb..#tb) IS NOT NULL DROP TABLE #tbCREATE TABLE #tb( id int IDENTITY原创 2008-01-02 07:41:00 · 11295 阅读 · 15 评论 -
使用临时表 + 循环展 BOM
背景有如下的 BOM 表,parent_part 与 child_part 是多对多的关系,现在要求查询出每个 child_part 的最顶层的 parent_partCREATE TABLE pl_bom( parent_part varchar(10), child_part varchar(10))INSERT INTO pl_bomSELEC原创 2007-08-29 13:15:00 · 11936 阅读 · 15 评论 -
如何控制触发器递归
背景A表UPDATE后,取B表某列再次UPDATE A表,这样又触发了A表的 UPDATE 触发器,我的目的是只触发一次,是否设置 nested triggers 选项关闭递归触发器即可?分析首先,必须清楚触发器递归的定义,触发器有两种递归方式:1. 直接递归A表上的触发器更改(插入/删除/更新)A表数据,导致A表的触发器再次触发,这种状况称之为原创 2007-08-05 03:06:00 · 11355 阅读 · 4 评论 -
使用事务与锁,实现一个用户取过的数据不被其他用户取到
问题描述:用ADO访问数据库,从一个表中取一定的记录(比如20行),取出后在程序中使用,使用完后删除掉记录(不用更新或删除记录)。在多用户操作下(每个用户采用相同的操作),怎么保证一个用户已选取的记录不被其他用户选取? 问题解决:处理这类问题的一般方法是增加一个标志列,每个用户取的记录设置一个标志,新的用户只从标志为未取的记录中获取记录。而本文利用事务与锁来原创 2006-08-28 20:31:00 · 10534 阅读 · 13 评论 -
如何快速生成100万不重复的8位编号
最近在论坛看到有人问,如何快速生成100万不重复的8位编号,对于这个问题,有几点是需要注意的:1. 如何生成8位随机数,生成的数越随机,重复的可能性当然越小2. 控制不重复3. 考虑性能针对这个问题,我写了如下的示例来解决,希望能为有这类需求的人提供指导 生成100万条8位不重复数据的示例USE tempdbGO -- 创建测试原创 2006-08-20 11:28:00 · 23912 阅读 · 19 评论 -
如何实现横向聚合
问题描述:有表tb,数据如下A1 A2 A3 A4 A5 1 2 5 3 42 2 3 4 50 3 4 2 5 如何输出A1 A2 A3 A4 A5 最大 最小 5以上个数1 2 5 3 4 5 1 12 2 3 4 5 5 2 10 3 5 2 6原创 2006-07-10 11:38:00 · 6351 阅读 · 3 评论 -
在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合
问题描述:在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合。组合的个数限制在2 和3。比如有数字(39,40,1,55,17,17……N)数字可以有重复。找出的组合有(50,50),(21,41,39),(48,50)……M。在上面的数字在组合中每次只能出现一次(比如数字中40只出现过一次,那在组合中也只能出现一次。17出现过两次那在组合原创 2006-09-17 21:00:00 · 7374 阅读 · 6 评论 -
模拟多级表头的分组统计
原帖地址:http://community.youkuaiyun.com/Expert/topic/3434/3434688.xml?temp=3.246486E-03--测试数据create table 单位表 (单位代码 varchar(10),单位名称 varchar(50))insert 单位表 values(01 ,中国单位) --1级insert 单位原创 2004-10-12 08:41:00 · 4179 阅读 · 0 评论 -
动态关联表
原帖地址:http://community.youkuaiyun.com/Expert/topic/3452/3452577.xml?temp=.1377375--示例数据create table [table](A sysname,B varchar(10))insert [table] select table_1,aunion all select table_2,bc原创 2004-10-14 21:34:00 · 3517 阅读 · 2 评论 -
字段里字符串的处理问题
原帖地址:http://community.youkuaiyun.com/Expert/topic/3244/3244874.xml?temp=.5755274表一:MenuTree? Id??????????????????? context????????????????? -----------? ---------------------------1????????????????????? 商原创 2004-08-05 20:48:00 · 2367 阅读 · 0 评论 -
根据产品损耗率计算产品实际数量
原帖地址: http://community.youkuaiyun.com/Expert/topic/3236/3236660.xml?temp=.9309046 表T1(记录的是产品加工步骤的损耗情况)Cp_No(产品编码) Cp_Step(加工步骤) Cp_Shl(损耗率)001 1 0.1001原创 2004-08-03 11:32:00 · 4787 阅读 · 0 评论 -
用SQL在文本文件中追加数据
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_movefile]) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure [dbo].[p_movefile]GO/*--在文本文件中追加数据 在文本文件中追加数据 如果文件不存在,原创 2004-08-15 10:19:00 · 4139 阅读 · 4 评论 -
先进先出的还款处理触发器
有 两个表:表1:借支姓名 日期 借支单号 借支金额 已还金额 未还余额张三 99-1-1 000001 10000 0 10000李四 99-1-2 000002 5000 0 5000张三 99-2-1 000003 6000原创 2004-07-22 15:51:00 · 3583 阅读 · 1 评论 -
字符串分拆查询
原帖地址:http://community.youkuaiyun.com/Expert/topic/3230/3230422.xml?temp=.7884485有这样的数据 字段1 字段2 2,4,23 3,6,345 23,56,4 3,3,67取数据的是查询 字段1中 条件是 4 那么在字段2 在取的是6与 67结果如下============4 64 67原创 2004-08-01 10:45:00 · 3298 阅读 · 0 评论 -
分拆统计字符串
在数据库表tbl1中有一个字段Keywords,它是nvarchar类型,长度为1000,该字段的内容是所要分析的论文的关键字id??????????????????????? keywords -----------------------------------------------------------1????????????????????????? kw1;kw2;kw32????原创 2004-07-30 16:32:00 · 3419 阅读 · 1 评论 -
更新字符串列表中,指定位置的字符串
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[f_updatestr]) and xtype in (NFN, NIF, NTF))drop function [dbo].[f_updatestr]GO/*--更新字符串列表中,指定位置的字符串 更新字符串列表中,指定位置的字符串为新原创 2004-07-29 13:06:00 · 2780 阅读 · 0 评论 -
得到指定字符串列表中,指定个数的字符串
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[f_split]) and xtype in (NFN, NIF, NTF))drop function [dbo].[f_split]GO/*--得到字符串列表指定位置的字符 可以自定义字符串列表的分隔符 如果取数位置超出的范围,返回空字原创 2004-07-29 13:00:00 · 3204 阅读 · 0 评论 -
SQL BUG集之"随机排序中的newid()问题"
/**==** 2. 随机排序中的newid()问题 **==**/--测试数据declare @t table(name char(1),value int)insert into @tselect a,1union all select a,2union all select b,3union all select b,4union all select c,5union原创 2004-07-29 10:06:00 · 2789 阅读 · 5 评论 -
生成交叉表的简单通用存储过程
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_qry]) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure [dbo].[p_qry]GO/*--生成交叉表的简单通用存储过程 根据指定的表名,纵横字段,统计字段,自动生成交叉表原创 2004-06-25 08:41:00 · 5111 阅读 · 4 评论 -
根据表中记录的变化情况自动维护作业
/**//*--作业处理实例 根据 sendTab 的 SendTime 定制作业 并且在该作业完成时,可以自动删除作业--邹建 2004.04(引用请保留此信息)--*/--示例--测试表CREATE TABLE dbo.sendTab( ID int IDENTITY(1,1), Name nvarchar(10), SendTime datetime,原创 2004-08-07 22:22:00 · 3770 阅读 · 2 评论 -
自动生成剩余编号字符串
原帖地址:http://community.youkuaiyun.com/Expert/topic/3220/3220744.xml?temp=.6029474问题描述:insert 主表 select Q,0000001,0000100,100,0000001-0000100? union all select M,0000001,0000200,200,0000001-00002原创 2004-08-09 08:49:00 · 2974 阅读 · 4 评论 -
动态分组查询
原帖地址:http://community.youkuaiyun.com/Expert/topic/3428/3428792.xml?temp=.6476251--示例数据create table 表(ID int,NUM int)insert 表 select 1,2union all select 2,3union all select 3,2union all select 4,2union all原创 2004-10-09 09:52:00 · 3749 阅读 · 3 评论 -
索引对查询条件顺序的影响
原帖地址:http://community.youkuaiyun.com/Expert/FAQ/FAQ_Index.asp?id=207897环境:Sql Server2000 +sp4问题:select datediff(day,20040910,20040920) --这句可以执行--而下面这句不能执行(有时也可以执行)--sub_para为varchar(8),错误信息是:从字符串原创 2004-09-22 13:10:00 · 4237 阅读 · 0 评论 -
展开BOM
原帖地址http://community.youkuaiyun.com/Expert/topic/3384/3384941.xml?temp=.6640436---------------------------------------------------------------------------测试数据CREATE TABLE [dbo].[BOM_DETAIL] ( [PKID] [in原创 2004-09-18 15:35:00 · 7970 阅读 · 0 评论