gpt4 book ai didi

SQL Server 使用条件在 VIEW 中添加计算列

转载 作者:行者123 更新时间:2023-12-03 14:35:10 27 4
gpt4 key购买 nike

这是我的情况:

在我的表中,我有两个字段:

- Price (decimal (15,4)
- TaxId (int)
TaxId value 没有存储在任何地方,但只有两个值(实际上是 3)。
- 1 (8.5%)
- 2 (20%)
- NULL (no tax)

现在我需要在我看来计算列来计算含税的新价格。

任何的想法?

我去了类似的东西:
SELECT...
CASE TaxId
WHEN 1 THEN Price *1.085 AS test
WHEN 2 THEN Price *1.2 AS test
WHEN NULL THEN Price AS test END
FROM...

更新:

我已经成功地执行了查询。
CASE dbo.Table.TaxId WHEN 1 THEN dbo.Table.Price*1.085 WHEN 2 THEN dbo.Table.Price*1.2 ELSE dbo.Table.Price END AS CalcualtedPrice

现在我只需要将CalculatedPrice 设为十进制(15,4)。我该如何设置?

最佳答案

是的,谷歌如何在 SQL Server 中创建 View ,并在 View 的 SELECT 语句中将 Price 列与 TaxId 列相乘。由于您必须考虑 NULL 值,您应该使用 COALESCE像这样

SELECT
Price * (1 + COALESCE(TaxId/100), 0) AS newValue
...

假设您的列中只有“8.5”而不是“8.5%”。是不是varchar?

附注: COALESCE()返回第一个非空值

更新 问题编辑后:

你只需要稍微修改你的语法
SELECT 
CAST(
CASE
WHEN TaxId = 1 THEN Price *1.085
WHEN TaxId = 2 THEN Price *1.2
WHEN TaxId IS NULL THEN Price END AS decimal(15,4)
) AS CalculatedPrice
FROM...

关于SQL Server 使用条件在 VIEW 中添加计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912127/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com