【问题标题】:ssrs expression to split string every 2 charactersssrs 表达式每 2 个字符拆分一次字符串
【发布时间】:2017-08-16 02:08:09
【问题描述】:
  1. 我正在使用 SSRS 执行以下功能

    I have a string stractual= 7700964455 
    
    I need to split the above string for every 2 characters something like below
    

77 00 96 44 55

Also I have another string value strexist = "99"

I need to verify whether strexist exists in stractual to meet the condition.


77
00
96
44
55

【问题讨论】:

标签: reporting-services split ssrs-2008


【解决方案1】:

执行字符串拆分的非常基本的 SQL Server 函数如下所示:

CREATE FUNCTION dbo.SPACEIT (@str nvarchar (255)) RETURNS nvarchar (500)
AS
BEGIN
    DECLARE @cnt int = 1;
    DECLARE @result nvarchar (500) = ''

    WHILE @cnt <= LEN(@str)
    BEGIN
      SET @result = @result + SUBSTRING(@str,@cnt,1)
      if (@cnt % 2 = 0)
          set @result = @result + ' '
      SET @cnt = @cnt + 1
    END 

    return @result
END

【讨论】:

  • 我知道用 SQL 编写,但这里的问题是如何在 SSRS 级别做到这一点,我得到了我们可以使用 vb 脚本的解决方案
【解决方案2】:

为了在 SSRS 级别控制上述功能,我们可以编写如下 vb 脚本

点击报告属性并移动到代码选项卡并编写您的 vb 函数

你可以在下面写自己的逻辑

要访问您需要在表达式中编写如下内容的函数

=Code.SubjectDetailsCheck("Value","1")

【讨论】:

    【解决方案3】:

    您可以使用以下查询作为技巧 -

    DECLARE @VAR VARCHAR(10)='702030405'
    DECLARE @RNG INT=LEN(@VAR)
    SELECT @RNG
    SELECT TOP (@RNG) ROW_NUMBER() OVER(ORDER BY A.OBJECT_ID) R
    INTO #TEMP  
    FROM SYS.all_objects A
    CROSS JOIN SYS.all_objects B
    
    SELECT * , ROW_NUMBER() OVER(ORDER BY R DESC) as R1 INTO #T1
    FROM #TEMP
    
    
    --DECLARE @VAR VARCHAR(10)='7020304056'
    
    Select CASE WHEN LEN(SUBSTRING(@VAR,R,len(@VAR)-R))>2 
    THEN LEFT(SUBSTRING(@VAR,R,len(@VAR)-R),2)
    ELSE SUBSTRING(@VAR,R,len(@VAR)-R) END SS
    , ROW_NUMBER() OVER(ORDER BY R)R2
    INTO #T3
    FROM #T1
    
    SELECT * FROM #T3
    WHERE NOT(R2% 2=0)
    
    DROP TABLE #TEMP
    DROP TABLE #T1
    DROP TABLE #T3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      相关资源
      最近更新 更多