案例功能基于1列以上

时间:2013-05-20 16:22:28

标签: sql-server

好的,关于使用CASE功能的一个简单问题。不知道我是否能够按照下面的示例中所示的方式使用它,但我想根据区域和银行代码使用它。有人可以帮助解决这方面的语法。

表: BankInfo

 BankCode      PayeeName        District
   101          John Doe           333
   101          Doe John           233
   100          Jane Doe           333

查询:

SELECT 
    PayeeName, BankCode
   ,CASE dbo.BankInfo.district
         WHEN 333 and BankCode = 101 THEN '79999'
    END as BankTransit

2 个答案:

答案 0 :(得分:3)

由于您使用的是两列,因此需要将其更改为:

SELECT 
    PayeeName, BankCode,
    CASE 
       WHEN dbo.BankInfo.district = 333 AND BankCode = 101 
       THEN '79999'
    END as BankTransit

答案 1 :(得分:0)

一个通用的Northwind示例:

Select
CustomerID , PostalCode ,
[MyMatch] = 
CASE
    When CustomerID = 'ALFKI' and PostalCode = '12209' then 1
    else 0
END

 from [dbo].[Customers]

Order by 3 DESC ,1,2

并翻译........ 我有一个别名“MyDerived1Value”。还有一个“别的”陈述。

Select
PayeeName, BankCode , 
[MyDerivedValue] = 
CASE
    When District = '333' and BankCode = '101' then '79999'
    else null
END

 from [dbo].BankInfo

Order by 3 DESC ,1,2

如果区和/或BankCode是int,则删除单引号。