【发布时间】:2019-08-20 12:31:11
【问题描述】:
大家好,
首先感谢您提供帮助。我的问题是:我正在尝试编写将执行以下操作的 sql 请求:
- 当用户输入某个终端代码时,sql 返回该终端的结果
- 当用户输入带有掩码
'CN'的终端代码时,sql 请求将返回在该终端开头具有'CN'的所有终端
我知道生病可能需要在这里使用CASE。
到目前为止,我得到了:
SELECT
sm.terminalid as terminalcode,
sm.sums as Latest_sums
FROM sums1 sm
... CASE
WHEN sm.terminalid = :p_terminal
THEN sm.sums = (
SELECT max(ss.sums) from sums ss WHERE ss.terminalid = :p_terminal
)
WHEN sm.terminalid = :p_terminal AND :p_terminal LIKE 'CN%'
THEN sm.sums = (
SELECT sm1.sums FROM sums1 sm1 WHERE sm1.terminalid = :p_terminal
AND :p_terminal LIKE 'CN%'
)
ELSE 'Incorrect Terminal ID'
END
任何人都可以帮助我我哪里出错了,因为当输入CN 时选择不会返回多个结果。
另外,如果有人对此任务有更好的解决方案,请随时分享。
提前谢谢你。
【问题讨论】: