DECLARE
@需求数 INT = '2600',
@每包容量 INT = ${if(打印类型=="总箱",@需求数,'125')};
WITH 参数 AS (
SELECT
${箱数量} AS 需求数,
${基板数} AS 基板数,
CASE WHEN '总箱'='${打印类型}' THEN ${箱数量} ELSE ${基板数} END AS 每包容量
),
包号序列 AS (
SELECT 1 AS 包号
UNION ALL
SELECT 包号 + 1
FROM 包号序列, 参数
WHERE 包号 < CEILING(参数.需求数 * 1.0 / 参数.每包容量)
)
用存储过程
在存储过程里面判断
------
sql数据集里面不支持定义变量
使用匿名块,do begin, 具体 sql 需要根据自己的数据库来写,类似下面这种
DO
BEGIN
DECLARE m INT := 4;
-- DECLARE n INT := '${integer}';
DECLARE n INT := '${if(integer = 1, 1, integer)}';
SELECT m * n AS factorial FROM table_a;
END;