热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sql删除左右字符之trim()函数用法

文章讲到了删除左右字符trim函数的用法,这是在sql中哦,用起来感觉没在php中方便,有需要的朋友参考一下操作过程吧。

文章讲到了删除左右字符trim函数的用法,这是在sql中哦,用起来感觉没在php中方便,有需要的朋友参考一下操作过程吧。

程序中的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

--测试

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 行受影响)


推荐阅读
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
  • PHP 图形函数中实现汉字显示的方法
    本文详细介绍了如何在 PHP 的图形函数中正确显示汉字,包括具体的步骤和注意事项,适合初学者和有一定基础的开发者阅读。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • Java连接MySQL数据库的方法及测试示例
    本文详细介绍了如何安装MySQL数据库,并通过Java编程语言实现与MySQL数据库的连接,包括环境搭建、数据库创建以及简单的查询操作。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 本文介绍了如何在 Oracle 数据库中查询重复数据,并提供了多种方法来筛选和删除重复记录,包括基于单个字段和多个字段的重复数据处理。 ... [详细]
  • 美团安全响应中心推出全新配送业务测试活动,带来双重福利,邀您共同参与! ... [详细]
author-avatar
妖精蝴蝶74
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有