替换函数(Replace,Trim,Rtrim,

编辑
  • 文档创建者:zsh331
  • 浏览次数:5145次
  • 编辑次数:3次
  • 最近更新:Kevin-s 于 2019-06-18
  • 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

    此页面有帮助吗?只是浏览 [ 去社区提问 ]