打赏

sql 学习

 1 /******************************************************************************
 2 **        Name: ufn_Split
 3 **        Desc: 拆分字符串
 4 **
 5 **              
 6 **        Return Values:
 7 **                 
 8 **        Parameters:    
 9 **        Auth: 
10 **        Date:
11 *******************************************************************************/
12 ALTER function [dbo].[ufn_Split]
13 (
14     @String varchar(max),                -- 要拆分的字符串
15     @Key varchar(50)                    -- 关键字
16 )
17 returns @sValues table(sIndex int identity(1,1), sValue varchar(max) )
18 as
19 begin
20     -- 索引及当前值
21     declare @KeyIndex int
22     declare @CurrentValue varchar(500)
23 
24     set @string = RTrim(LTrim(@String))
25     
26     -- 拆分
27     set @KeyIndex = charindex(@Key,@string)
28 
29     while @KeyIndex <> 0
30     begin
31         set @CurrentValue = substring(@String,1,@KeyIndex-1)
32 
33         insert into @sValues(sValue) values (@CurrentValue)
34 
35         set @String = substring(@String, @KeyIndex+1, len(@String)- @KeyIndex)
36 
37         set @KeyIndex = charindex(@Key, @String)
38     end
39 
40     insert into @sValues(sValue) values (@String)
41 
42     -- 返回拆份结果
43     return
44 end

测试:

 1 /******************************************************************************
 2 **        Name: ufn_IsNullOrEmpty
 3 **        Desc: 同时判断null和空字符
 4 **
 5 **              
 6 **        Return Values:null或空时,返回指定字符串,否则,返回自己
 7 ** 
 8 **        Parameters:
 9 **        Auth: 曾荣彬
10 **        Date: 2006-11-3
11 *******************************************************************************/
12 ALTER function ufn_IsNullOrEmpty(@expression sql_variant, @Replace sql_variant)
13 returns sql_variant
14 as
15 begin
16    if( @expression = '' or @expression is null)
17   return @Replace
18  return @expression
19 end

测试:

posted @ 2017-09-26 15:20  刘奇云  阅读(245)  评论(0编辑  收藏  举报