You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL为表中列减去7%折扣?以Products表Price列为例

给Products表Price列打93折(减7%)的SQL实现方法

嗨,刚好之前处理过类似的需求,直接给你说清楚:SQL里**不能直接写Price - 7%**这种写法哦,因为数据库不认识单独的7%作为数值,得把百分比转换成小数来计算才行。

下面分两种常见场景给你示例:

1. 只是查询折扣后的价格(不修改原表)

如果只是想看看每个产品打完7%折扣后的价格,不想改动原数据,用SELECT语句就行,两种写法都可以:

  • 写法一:直接乘以0.93(因为100%-7%=93%)
SELECT 
  ProductID, 
  ProductName, 
  Price AS OriginalPrice, 
  Price * 0.93 AS DiscountedPrice -- 折扣后价格
FROM Products;
  • 写法二:用原价减去原价的7%,逻辑更直观
SELECT 
  ProductID, 
  ProductName, 
  Price AS OriginalPrice, 
  Price - (Price * 0.07) AS DiscountedPrice
FROM Products;

2. 直接更新原表的Price列(永久修改数据)

如果要把数据库里的Price值直接改成折扣后的,就得用UPDATE语句了!注意:执行UPDATE前一定要备份数据,避免误操作无法恢复!

步骤:

  1. 先备份Products表(可选但强烈推荐)
-- 把原表数据备份到新表Products_Backup
SELECT * INTO Products_Backup FROM Products;
  1. 执行更新操作
    同样有两种等价写法:
-- 写法一:乘以0.93
UPDATE Products
SET Price = Price * 0.93;

-- 写法二:减去原价的7%
UPDATE Products
SET Price = Price - (Price * 0.07);

额外技巧:

  • 如果Price是整数类型,或者想保留指定小数位数(比如两位),可以用ROUND函数:
UPDATE Products
SET Price = ROUND(Price * 0.93, 2); -- 保留两位小数
  • 只想给特定产品打折?加WHERE条件就行,比如只给类别ID为1的产品打折:
UPDATE Products
SET Price = Price * 0.93
WHERE CategoryID = 1;

内容的提问来源于stack exchange,提问作者Vivaldi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:55:12