我困在存储过程中的一个复杂的SQL开关案例语句中。复杂开关案例SQL
我复制存储过程的中间环节:
AND
(
@Statuses IS NULL
OR
[BF].[BookingFileStatusID] IN
(
SELECT [ID]
FROM @BookingFileStatuses)
AND
(
@Statuses IS NULL
OR
**((
(
SELECT count([ID])
FROM @BookingFileStatuses) >= 1)
AND
(
1 = (
CASE
WHEN [S].servicetypeid IS NULL THEN 1
WHEN (
[S].servicetypeid <> 3
AND
[BF].bookingfilestatusid IN (16, 17, 18, 19, 20, 23)
)
THEN 1
WHEN (
[S].servicetypeid = 3
AND
[BF].bookingfilestatusid IN
(
SELECT [ID]
FROM @BookingStatuses)
)
THEN 1
ELSE 0
END)
)
)**
)
)
突出部分应返回一些结果。
即使用if来代替突出显示的部分。
请协助。
你没有解释你的问题。请澄清你有什么问题。 – Mikuana
@Mikuana:应用正确的案例。 必须用上述语句替换xxxxxxxxxxxxxx,该语句返回true或false –
您能否提供[MCVE](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an- MCVE换什么,似乎对我将要-A-极简单的SQL查询)?没有样本数据和预期的结果来测试,这种问题可能很难回答。 –