sql-server - 如何返回一个依赖于另一个值的值?
问题描述
我有一张产品表和一张费率表。每个产品都有一组不同的费率,每组都有一个标题费率。如何返回每个产品的标题费率?
这是表格的示例
产品页
Id Product
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
P1 Product1
P2 Product2
P3 Product3
费率 rr
Id Productid Headlinetier Tier1 Tier2 Tier3
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 P1 3 0.1 0.2 0.3
2 P2 1 0.4 0.5 0.6
3 P3 2 0.7 0.8 0.9
如何获得以下结果?
pp.Product rr.Headlinerate
- - - - - - - - - - - - - - - - - - - - - - - - - -
P1 0.3
P2 0.4
P3 0.8
解决方案
您需要连接表和 CASE 语句以在 3 层之间进行选择:
select
p.product,
case r.headlinetier
when 1 then r.tier1
when 2 then r.tier2
when 3 then r.tier3
end headlinerate
from products p inner join rates r
on r.productid = p.id
如果您的版本是 SQL Server 2012+,您可以使用choose()
:
select
p.product,
choose(r.headlinetier, r.tier1, r.tier2, r.tier3) headlinerate
from products p inner join rates r
on r.productid = p.id
推荐阅读
- botframework - luisRecognizer 根据用户在版本#4 节点 js 中的首选语言环境选择 LUIS 模型
- amazon-web-services - 如何使用 AWS CDK 将元数据添加到 IAM 策略?
- java - 我如何在 spock 测试中使用 redisService 我需要清理 redis 数据库以进行设置和清理
- ruby-on-rails - Rails:使用 RestClient 进行外部 API 集成(400 错误请求)
- javascript - 如何打印报表
- c++ - 为什么我能够在 C++ 中将常量 shared_ptr 分配给非常量 shared_ptr?
- python - Pandas Dataframe 过滤器错误结果
- python - 是否有更 Pythonic 的方式将带有 json 对象的文本文件加载到 pandas 数据框中?
- java - 有没有办法做我在这里所做的事情,用 2 个循环而不是一个循环
- bash - 将命令替换变量与常规变量进行比较