Sql server 更新语法
我有以下情况: 表为etblpricelistprices 栏目如下:Sql server 更新语法,sql-server,Sql Server,我有以下情况: 表为etblpricelistprices 栏目如下: iPriceListNameID iPricelistNameID iStockID fExclPrice 1 1 1 10 2 2 1 20 3 3 1
iPriceListNameID iPricelistNameID iStockID fExclPrice
1 1 1 10
2 2 1 20
3 3 1 30
4 4 1 40
5 5 1 100
6 6 1 200
7 7 1 300
8 8 1 400
9 1 2 1000
10 2 2 2000
11 3 2 3000
12 4 2 4000
13 5 2 50
14 6 2 40
15 7 2 30
16 8 2 20
这里只有两个库存项目,但数据库中的库存项目更多。第一列是自动递增的主键。第二列是价格表。价格表分为以下几部分。1-4为当前定价,5-8为未来定价。第三列是库存项目的ID,第四列是项目的定价
我需要一个脚本来更新此表,以交换每个项目的未来和当前定价。如果愿意,请帮助观察交换iPricelistNameID值将获得与交换FexClice值相同的总体效果,并且可以使用以下公式执行:
UPDATE _etblpricelistprices
SET
iPricelistNameID = CASE
WHEN iPricelistNameID > 4 THEN iPricelistNameID - 4
ELSE iPricelistNameID + 4
END
看来我的格式已经过时了。请询问您是否需要布局,我很乐意将其邮寄给您您您的意思是pricelist 1和pricelist 5的值应该交换位置,与2和6、3和7以及4和8相同吗?如果不是,我不知道你的意思,你需要解释更多。是的,达米恩,确实如此,但它需要按照StockId这样做。第一列和第二列是否真的有这些名称,只是大小写不同?如果没有,您能否编辑您的问题并更正名称?这些是db中的列是,很遗憾。第一列是pk,并自动增加将添加到系统中的每个新库存项目。第二列是pricelistid,它将仅从1-8开始。当系统中只有一个库存项目时,我可以通过运行以下语法获得要交换的值,但是当有多个库存项目时,它失败了。