首页 > 解决方案 > 使用 CASE WHEN 子句为某些行创建 SQL Server 视图列

问题描述

我有以下 SQL 代码:

CREATE VIEW [dbo].[vewPropertyTransactions] 
AS

SELECT 
      Base.Expense_ID, Base.EstatShareHolder_ID, Base.[Expense Category] AS ExpenseCategory, 

    CASE 
        WHEN 
            Base.EstatShareHolder_ID IS NOT NULL AND 
            Base.DuePayer_ID=Base.PropertyManagementDuePayer_ID AND 
            Base.Payer_ID=Base.EstatShareHolder_ID AND 
            Base.[Expense Category]<>'Maintenace Services'
        THEN Base.[Expense Category]
    END ExpenseCategories

FROM     
    dbo.vewEstatePartnershipTransactionBase AS Base

    ORDER BY Base.Expense_ID

GO

它会生成一个像这样的网格视图:

在此处输入图像描述

而我希望生成这样的东西:

在此处输入图像描述

基本上,我真正想要实现的是,当未填充 WHEN 子句时,将 ExpenseCategories 的值设置为 NULL,但具有相同 ExpenseID 的行组除外,应将其 ExpenseCategories 设置为 [Expense Category]。

任何指导将不胜感激。

谢谢

标签: sql-server

解决方案


推荐阅读