2017-08-24 43 views
0

我使用Stimulsoft设计来生成报告,并且我使用两个变量进行过滤。如果变量被填充或者不存在,则在stimulsoft上执行两个不同的查询

所以我想使数据源建立一个SQL语句,如果过滤一个充满另一种是空的,另一个SQL如果过滤器二是填充,另一个是空的,也许一个else语句...

因此,这将是这样的:

如果过滤一个充满和过滤二是空的,然后做出选择1,它是:

SELECT * FROM tableExample WHERE column1 LIKE '%{filter1}%' 

如果过滤器二是填充过滤一个是空的,然后进行SELECT 2,即:

SELECT * FROM tableExample WHERE id = '%{filter2}%' 

和ID是主键。

那么,我能做到吗?

也许我可以检查它只使用SQL,但我不知道如何做到这一点,有人可以帮我吗?

谢谢!

+0

您是否要求在此查询单个查询? –

+0

是的。要么你知道如何使用stimulsoft,并且可以教我如何根据用户输入做出两个查询,或者可能是一种更简单的方法来解决这个问题,这将合并这两个查询。 –

回答

1

如果您正在寻找其中包含你的逻辑,你可以试试下面的一个查询:

SELECT * 
FROM tableExample 
WHERE 
    (COALESCE(filter2, '') = '' AND COALESCE(filter1, '') <> '' AND 
    filter1 LIKE '%{filter1}%') OR 
    (COALESCE(filter1, '') = '' AND COALESCE(filter2, '') <> '' AND 
    id = '%{filter2}%') 

注意,有点丑陋COALESCE电话是那里,因为我不知道你的empty的意思。这是否意味着NULL,空字符串或两者?

+0

谢谢,那就是我一直在寻找的东西。 –

相关问题