stimulsoft 上的两个不同查询是否填充变量
Two different queries on stimulsoft if variables are filled or not
我正在使用 Stimulsoft Design 制作报告,我正在使用两个变量进行过滤。
所以我想让数据源构建一个 SQL 语句,如果过滤器一个已填充,另一个为空,另一个 SQL 如果过滤器二已填充,另一个为空,并且也许是 else 声明...
所以它会是这样的:
如果过滤器一已满而过滤器二为空,则使SELECT1,即:
SELECT * FROM tableExample WHERE column1 LIKE '%{filter1}%'
如果过滤器二被填充而过滤器一为空,则使SELECT 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
、空字符串或两者?
我正在使用 Stimulsoft Design 制作报告,我正在使用两个变量进行过滤。
所以我想让数据源构建一个 SQL 语句,如果过滤器一个已填充,另一个为空,另一个 SQL 如果过滤器二已填充,另一个为空,并且也许是 else 声明...
所以它会是这样的:
如果过滤器一已满而过滤器二为空,则使SELECT1,即:
SELECT * FROM tableExample WHERE column1 LIKE '%{filter1}%'
如果过滤器二被填充而过滤器一为空,则使SELECT 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
、空字符串或两者?