`
holoblog
  • 浏览: 1264218 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:19540
文章分类
社区版块
存档分类
最新评论

SQL自定义Trim函数,删除左右字符

 
阅读更多

程序中的Trim函数大伙都知道的,但是要SQL中只有LTRIM,RTRIM删除左、右空白字符,而不能删除指定字符,所以我们自己写一个。

要求:

1. 能删除前后空白,如 '   aa ' -> 'aa'

2. 能删除前后字符,并不受空白影响,如 '  ;aa'  -> 'aa'

3. 删除前后字符后,需清除前后空格,如 ';   aa' ->  'aa'

4. 需删除前后连续的字符,如 ';;;aa'  ->  'aa'

网上也有一些别人写的,我觉得很不错,不过貌似没有完整的能达到要求的,所以自己动手写了一个。

创建函数代码如下:

/****** 
Object:  UserDefinedFunction [dbo].[TRIM]    
Script Date: 11/18/2011 09:10:14 
Author: EF
******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[trim]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[trim]
GO
CREATE FUNCTION dbo.trim
(
    @Source VARCHAR(MAX),
    @Char CHAR(1)
)
RETURNS VARCHAR(MAX)
AS
BEGIN
    DECLARE @i int;
    DECLARE @returnString VARCHAR(MAX)
    SET @returnString = @Source
    --清除前后空格
    SET @returnString = LTRIM(RTRIM(@returnString))
    --删除左侧字符
    SET @i = 0
    WHILE @i=0
    BEGIN
        IF LEFT(@returnString,1) = @Char
        SET @returnString = RIGHT(@returnString,LEN(@returnString)-1)
        ELSE
        SET @i=1
    END
    --删除右侧字符
    SET @i = 0
    WHILE @i=0
    BEGIN
        IF RIGHT(@returnString,1) = @Char
        SET @returnString = LEFT(@returnString,LEN(@returnString)-1)
        ELSE
        SET @i=1
    END
    --清除前后空格
    SET @returnString = LTRIM(RTRIM(@returnString))
    RETURN @returnString;
END

GO

--测试

select dbo.trim('asdfas;asdfasdfa;',';')
union all select dbo.trim(';asdfas;asdfasdfa;',';')
union all select dbo.trim('  ;asdfas;asdfasdfa;',';')
union all select dbo.trim('; asdfas;asdfasdfa;',';')

 

--结果

-------------------------------------------------------------------------

asdfas;asdfasdfa
asdfas;asdfasdfa
asdfas;asdfasdfa
asdfas;asdfasdfa

(4 行受影响)
0
0
分享到:
评论

相关推荐

    vfp自定义函数集

    2. **字符串操作**:VFP提供了丰富的字符串函数,如`LEFT()`, `RIGHT()`, `MID()`, `SUBSTRING()`, `TRIM()`, `UPPER()`, `LOWER()`等,用于提取、截取、调整汉字字符串。在处理汉字时,这些函数能帮助我们精确地...

    解析在MYSQL语法中使用trim函数删除两侧字符

    在MySQL数据库中,`TRIM`函数是一种非常实用的字符串处理函数,主要用于删除字符串两侧或某一侧的特定字符。在实际的数据操作和查询中,它能够帮助我们有效地清理和整理数据,提高数据处理的效率。本文将深入解析...

    PHP自定义公共函数

    例如,可以创建一个函数`sanitize_input($input)`,使用`htmlspecialchars()`和`trim()`对输入进行净化,防止XSS(跨站脚本攻击)和SQL注入。 2. **日期格式化**: PHP提供了`date()`和`DateTime`类来处理日期和...

    sql函数大全和对字符串操作函数

    在SQL语言中,函数是处理数据的强大工具,可以用于各种数据操作,包括数学计算、日期时间处理、字符串操作等。本文将重点介绍SQL中的函数大全,尤其是字符串操作函数,通过详细的例子来阐述这些函数的使用方法。 ##...

    SQL字符串函数SQL字符串函数SQL字符串函数

    ### SQL字符串函数详解 在数据库管理和数据处理领域中,SQL(Structured Query Language)是一种非常重要的语言,被广泛用于管理关系型数据库系统。SQL不仅能够帮助我们有效地存储、检索和操作数据,还提供了一系列...

    常用SQL字符串函数集锦.

    在SQL(结构化查询语言)中,字符串函数是用于处理文本数据的重要工具。它们可以帮助我们进行各种操作,如提取、转换、格式化和比较字符串。本篇将详细讲解一些常用的SQL字符串函数,以便你在数据库操作中更加...

    db2字符串分隔,函数,过程的使用

    - `TRIM()`:去除字符串两侧的指定字符,若无指定字符,则默认去除空格。 3. 过程的使用: 在DB2中,过程是一组预编译的SQL语句,可以接受参数并返回结果。创建过程使用`CREATE PROCEDURE`,调用过程使用`CALL`。...

    ABAP字符串SQL Functions语法总结

    除了这些函数,还有其他一些常用的字符串函数,如`RIGHT(arg, len)`(返回右端的`len`个字符)、`SUBSTRING(arg, start, len)`(提取子串)、`TRIM([arg])`(去除首尾空格)等。掌握这些函数可以帮助开发者更高效地...

    sql字符串处理函数

    根据提供的文件信息,我们可以归纳总结出一系列关于SQL字符串处理函数的知识点。这些函数在数据库管理和数据操作中扮演着重要的角色,能够帮助用户高效地完成字符串的处理任务。 ### ASCII() ASCII()函数用于获取...

    SQL语句中Trim的使用问题.doc

    Trim 函数是 SQL 语句中常用的字符串处理函数之一,用于删除字符串的前导和尾随空格。但是,在使用 Trim 函数时,需要注意一些问题,以避免对 SQL 语句的性能产生不良影响。 首先,需要注意的是,当使用 Trim 函数...

    17.函数整理(T-SQL 版).pdf

    6. 截去字符串两侧空格的TRIM()函数:TRIM函数删除字符串两侧的空格。 7. 获取子字符串的SUBSTRING()函数:SUBSTRING函数根据指定的位置和长度返回字符串中的子字符串。 8. 查找子字符串位置的CHARINDEX()函数:...

    oracle中的trim函数使用介绍

    Oracle中的TRIM函数是数据库操作中处理字符串时非常实用的一个函数,主要用来移除字符串两端或其中一侧的特定字符,通常用于去除空格。本文将详细介绍Oracle TRIM函数的使用方法,帮助你更好地理解和运用这一功能。 ...

    pl_sql函数大全

    TRIM 函数用于删除字符串两端的指定字符。例如: ``` SQL> SELECT TRIM(' ' FROM ' gaoqianjing ') FROM DUAL; ``` 这里删除了 `' gaoqianjing '` 两端的所有空格。 ### 15. ABS 函数 ABS 函数用于返回数值的...

    一些有用的自定义配置单元udf函数、特殊数组、json、数学、字符串函数。___下载.zip

    除了Hive内置的字符串函数,如concat、substring、trim等,自定义字符串函数可能提供了更丰富的文本处理能力,如正则表达式匹配、字符串格式化、编码解码等。 总的来说,这个压缩包提供的资源对于Hive用户来说是一...

    Oracle sql内置函数大全

    语法分别为 `LTRIM(string, trim_string)` 和 `RTRIM(string, trim_string)`,其中 `string` 是要处理的字符串,`trim_string` 是要删除的字符串。例如: ```sql SELECT LTRIM(RTRIM(' gao qian jing ', ' '), ' ') ...

    ORACLE字符串函数

    该函数用于从字符串开头/结尾/两边删除指定的字符。例如,`trim(both 'x' from 'xTomxx')`将返回`'Tom'`。 13. 字符串大写函数:`upper(string)` 该函数将字符串转换为大写。例如,`upper('tom')`将返回`'TOM'`。 ...

    SQL数据库常用函数

    - **TRIM()**: 删除字符串两端的空格。 - **LEFT()** 和 **RIGHT()**: 从字符串左侧或右侧提取指定数量的字符。 3. **日期和时间函数**: - **NOW()**: 获取当前日期和时间。 - **DATE()**: 从日期时间值中提取...

    数据库SQL函数大全

    6. TRIM(): 去除字符串两侧的空白字符。 三、日期和时间函数 1. NOW(): 获取当前日期和时间。 2. DATE(): 提取日期部分。 3. TIME(): 提取时间部分。 4. YEAR(), MONTH(), DAY(): 分别提取日期的年、月、日部分。 5...

    SQL常用函数大全

    在SQL(Structured Query Language)中,函数是执行特定计算或操作的重要工具,广泛应用于数据查询、分析和处理。SQLServer2000虽然已经相对较老,但其提供的函数集仍然是现代SQL版本的基础。以下是一些SQLServer...

Global site tag (gtag.js) - Google Analytics