我正在使用 Stimulsoft Design 制作报告,并使用两个变量进行过滤。
所以我想让数据源构建一个 SQL 语句,如果过滤器一个被填充,另一个是空的,另一个 SQL 如果过滤器 2 被填充而另一个是空的,也许还有一个 else 语句......
所以它会是这样的:
如果过滤器一已填充而过滤器二为空,则进行选择 1,即:
SELECT * FROM tableExample WHERE column1 LIKE '%{filter1}%'
如果过滤器二已填充而过滤器一为空,则进行选择 2,即:
SELECT * FROM tableExample WHERE id = '%{filter2}%'
ID 是主键。
嗯,我可以这样做吗?
也许我只能使用 SQL 来检查它,但我不知道如何做到这一点,有人可以帮我吗?
谢谢!
如果您正在寻找包含您的逻辑的单个查询,您可以尝试以下操作:
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
空字符串,还是两者兼而有之?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句