首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SSRS中的LookupSet中使用String.Contains

在SSRS中的LookupSet中使用String.Contains
EN

Stack Overflow用户
提问于 2018-01-20 23:16:28
回答 1查看 331关注 0票数 2

我有两个数据集A和B。A有一个名为Paper的字段。B有两个字段,分别称为Subject和Grade。

这些字段中的数据如下所示:

代码语言:javascript
运行
复制
+---------+-------+       +-----------------------------+
| Subject | Grade |       |            Paper            |
+---------+-------+       +-----------------------------+
| English | A     |       | English Literature Autumn 1 |
| Maths   | D     |       | Further Maths Spring 2      |
| Physics | F     |       | Physics                     |
+---------+-------+       +-----------------------------+

我通常使用的LookupSet如下所示:

代码语言:javascript
运行
复制
=LookupSet(Fields!Paper.Value, Fields!Subject.Value, Fields!Grade.Value, "B")

当然,它只返回F,因为物理是唯一相同的字段。我需要一些能返回其余分数的东西。我试过了:

代码语言:javascript
运行
复制
=LookupSet(Fields!Paper.Value, Fields!Subject.Value.IndexOf(Fields!Subject.Value) >= 0, Fields!Grade.Value, "B")

代码语言:javascript
运行
复制
=LookupSet(Fields!Paper.Value, Fields!Subject.Paper.ToLowerInvariant().Contains(Fields!Subject.Value), Fields!Grade.Value, "B")

有没有一种方法可以在不改变数据的情况下实现它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-22 10:04:57

如果源是SQL Server,则可以在T-SQL中使用LIKE执行此操作。

SQL示例

代码语言:javascript
运行
复制
WITH
subject_grades
AS
(
    SELECT tbl.* FROM (VALUES
      ( 'English', 'A')
    , ( 'Maths', 'D')
    , ( 'Physics', 'F')
    ) tbl ([Subject], [Grade]) 
)
, 
subject_papers
AS
(
    SELECT tbl.* FROM (VALUES
      ( 'English Literature Autumn 1')
    , ( 'Further Maths Spring 2')
    , ( 'Physics')
    ) tbl ([Paper]) 
)
SELECT
      sp.Paper
    , sg.Grade
FROM 
    subject_papers AS sp
    LEFT JOIN subject_grades AS sg ON sp.[Paper] LIKE '%' + sg.[Subject] + '%'

db<>fiddle

结果

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48357723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档