【发布时间】:2014-02-26 04:44:14
【问题描述】:
我有一个复杂的存储过程,我需要能够隐藏连接到主表的表中的特定行。隐藏这一行的标准是基于主表(Orders)中的值(DeductMoney)是否为1。我的存储过程是这样的:
SELECT
O.FileNumber
,ML.Line
,ML.Price
,ML.Description
FROM Orders O
INNER JOIN Main M
ON O.OrdersID = M.OrdersID
INNER JOIN MainLine ML
ON ML.MainID = M.MainID
WHERE
M.MainID = @MainID
结果集目前如下所示:
FileNumber | Line | Price | Description
---------------------------------------
0001 | 501 | $200 | DescriptionA
0001 | 502 | $300 | DescriptionB
0001 | 503 | $150 | DescriptionC
0001 | 504 | $100 | DescriptionD
0001 | 505 | $75 | DescriptionE
0001 | 506 | $500 | DescriptionF
现在 Orders 表中有一个名为 DeductMoney 的列。此列仅适用于返回结果集的一个特定行,即第 506 行。DeductMoney 列可以是 0 或 1,如果是 1,我需要从 SQL SELECT 中完全删除该行。所以本质上,如果 DeductMoney = 1,则删除第 506 行存在的行。
很遗憾,此数据没有传递给 SSRS,因此我无法在该级别对其进行过滤。有人对我将如何执行此操作有想法吗?是否可以通过 CASE 语句来做到这一点?非常感谢任何帮助!
根据列值从 SELECT 中删除行
【问题讨论】:
标签: sql sql-server