替换函数(Replace,Trim,Rtrim, Ltrim)

编辑
文档创建者:zsh331 (73316 )     浏览次数:2450次     编辑次数:2次     最近更新:jiangsr 于 2018-06-14     

目录:

1. 描述编辑

大家平时在设计报表的时候,很多人都遇到过这样的问题,明明传递参数进去了,为什么检索不到数据呢?可在数据表中查看是有数据的呀?最后得出的结论:由于表中字段内容存在各种各样的问题导致的,比方字符串中间有多余的空格,换行符,制表符等等…

2. 思路编辑

我们可以在新建数据集时,对过滤字段通过数据库自带的TRIM( )RTRIM( )LTRIM( )REPLACE()等函数将其进行处理。

3. 函数使用范围编辑

MySQL: TRIM( ), RTRIM( ), LTRIM( ), Replace()

Oracle:RTRIM( ), LTRIM( ), Replace()

SQL Server:RTRIM( ), LTRIM( ), Replace()

4. 示例编辑

4.1 准备数据

-- ---------------------------- -- Table structure for zsh_0220 -- ---------------------------- DROP TABLE [dbo].[zsh_0220] GO CREATE TABLE [dbo].[zsh_0220] ( [t_time] int NULL , [code] int NULL , [name] varchar(255) NULL , [cl] int NULL ) GO -- ---------------------------- -- Records of zsh_0220 -- ---------------------------- INSERT INTO [dbo].[zsh_0220] ([t_time], [code], [name], [cl]) VALUES (N'2015', N'110000', N' 北京市', N'7631') GO GO INSERT INTO [dbo].[zsh_0220] ([t_time], [code], [name], [cl]) VALUES (N'2015', N'120000', N'天津 市', N'3861') GO GO INSERT INTO [dbo].[zsh_0220] ([t_time], [code], [name], [cl]) VALUES (N'2015', N'130000', N'河北省 ', N'7631') GO GO INSERT INTO [dbo].[zsh_0220] ([t_time], [code], [name], [cl]) VALUES (N'2016', N'110000', N'北京市', N'8122') GO GO INSERT INTO [dbo].[zsh_0220] ([t_time], [code], [name], [cl]) VALUES (N'2016', N'120000', N' 天 津 市', N'3524') GO GO INSERT INTO [dbo].[zsh_0220] ([t_time], [code], [name], [cl]) VALUES (N'2016', N'130000', N'河北省', N'9006') GO GO 

222

4.2 LTRIM(参数)介绍

语法:【参数】是表达式或者二进制数据。

返回内容:varchar  nvarchar

SELECT * FROM dbo.[zsh_0220] where LTRIM (name) ='${dq_r}' --dq_r 默认值:北京市 --LTRIM():返回删除了前空格之后的字符表达式。 

222

select LTRIM('  我的前面有空格') --返回:‘我的前面有空格’

4.3 RTRIM(参数)介绍

语法:【参数】是表达式或者二进制数据。

返回内容:varchar  nvarchar

SELECT * FROM dbo.[zsh_0220] where LTRIM (name) ='${dq_r}' --dq_r 默认值:河北省 --RTRIM():返回删除了后空格之后的字符表达式。 

222

select RTRIM('我的前面有空格      ') --返回:‘我的后面有空格’

4.4 TRIM ()介绍

语法:TRIM ( [ [位置] [要移除的字串] FROM ] 字串)

返回内容:varchar  nvarchar

--TRIM():将把 [要移除的字串] 从字串的起头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字串] 是什么的话,那空白就会被移除。 SELECT TRIM( '.' FROM '. test .') AS Result; --返回:删除了首尾的’.’的结果’ test ’ 

222

SELECT TRIM(' zsh ') --返回:’zsh’ 默认是删除首尾空格
4.5 Replace()介绍(推荐使用)

语法:Replace(参数1,参数2,参数3):返回 nvarchar 如果输入自变量之一是 nvarchar 数据类型; 否则,将返回 varchar。如果任何一个参数为NULL,则返回NULL

参数解释:

参数1:为要搜索字符串表达式

参数2:为要查找的子字符串。

参数3:用来替换的字符串。

Replace():用另一个字符串值替换出现的所有指定字符串值。

SELECT * FROM dbo.[zsh_0220] where replace(name,' ','') ='${dq_r}' --dq_r 默认值:天津市 -- replace(name,' ','')会替换掉name中所有的空格,然后与$dq_rj(天津市)进行匹配。 

222

SELECT REPLACE('abcdefghicde','cde','xxx'); --返回:'abxxxfghixxx' --解释:用’xxx’替换掉了'abcdefghicde'中<b>所有</b>的’cde’ 

附件列表


主题: 专题总结
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?