Account_ID Amount
123 200
结果
Account_ID Amount
123 200
123 -200
通常情况下,我们的数据库将有两笔交易用于无效退款支付,但不知何故,只有少数记录只有一笔交易。
我知道我可以手动将相同的记录插入表中。 有没有其他方法可以克隆记录并将数量设置为负数而不使用insert statment?
答案 0 :(得分:1)
尽管M.Ali说克隆记录并不好,但我们可以实现,但我并不确切知道它是否符合您的要求
DECLARE @T TABLE
([Account_ID] int, [Amount] int)
;
INSERT INTO @T
([Account_ID], [Amount])
VALUES
(123, 200)
;
;WITH CTE AS (select Account_ID,Amount,row_number()OVER(PARTITION BY Amount ORDER BY (Select NULL))RN from @T
CROSS APPLY(values('Account_ID',Account_ID),('Amount',Amount))M(v,s))
Select Account_ID,
CASE WHEN RN = 1 THEN cast(Amount as varchar) ELSE
'-' + cast(Amount as varchar)END
from CTE