• 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

    测试:

  • 相关阅读:
    jchdl
    jchdl
    UVa 11134 (区间上的贪心) Fabled Rooks
    UVa (二分) 11627 Slalom
    POJ 1037 (计数 + DP) 一个美妙的栅栏
    HDU 3448 Bag Problem
    HDu 3449 (有依赖的01背包) Consumer
    POJ 1456 (贪心+并查集) Supermarket
    POJ 2236 (简单并查集) Wireless Network
    POJ 1703 Find them, Catch them
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/7596970.html
Copyright © 2020-2023  润新知