遇到两个小知识点。自己总结一下,方便自己查阅,也是为了让自己养成一个习惯。一个写博客的习惯。上次看了一遍文章。讲的是写博客的好处。
自己看了,也有所感触。我也知道,不一定能坚持下来。但我想尝试一下。尝试养成这样一个习惯。
1 SQL循环表里的数据
select * into #t1 from Userinfo declare @id varchar(2000); while (exists(select ProjectID from #t1)) begin select @id=userid from #t1 delete #t1 where ProjectID=@id end drop table #t1
2 SQL拆分函数
USE [XSMAN_DB] GO /****** Object: UserDefinedFunction [dbo].[func_SplitToTable] Script Date: 12/03/2012 23:25:37 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: cxy -- Create date: 2010-10-28 -- Description: 根据分隔符分割字符串,返回表 -- ============================================= Create FUNCTION [dbo].[func_SplitToTable] ( @SplitString nvarchar(max), @Separator nvarchar(10)=' ' ) RETURNS @SplitStringsTable TABLE ( [id] int identity(1,1), [value] nvarchar(max) ) AS BEGIN DECLARE @CurrentIndex int; DECLARE @NextIndex int; DECLARE @ReturnText nvarchar(max); SELECT @CurrentIndex=1; WHILE(@CurrentIndex<=len(@SplitString)) BEGIN SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex); IF(@NextIndex=0 OR @NextIndex IS NULL) SELECT @NextIndex=len(@SplitString)+1; SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex); INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText); SELECT @CurrentIndex=@NextIndex+1; END RETURN END --执行函数 1 select * from dbo.func_SplitToTable('1,2',',') --执行函数 2 select * from dbo.func_SplitToTable('1-2-3','-') --执行函数 3 select * from dbo.func_SplitToTable('1 2 3',' ')
执行结果:
不积跬步,无以至千里;不积小流,无以成江海.希望我能坚持下去。努力!