2

我有一张桌子kyc3,里面有walletno,statusrank列。rank 列当前填充为 0。而 status 列具有以下数据:接受、拒绝、注册和扫描。我想将每个状态的值放在排名列中

accepted = 1, rejected = 2, registered = 3 and scanned = 4

我写了以下查询,但不明白如何完成它:

INSERT INTO kyc3([rank]) SELECT status_ FROM kyc3

我知道我需要放置一个 where 子句来指示我的数据填充逻辑。但是我应该写什么呢?

4

2 回答 2

3

如果表格已填充并且您想要更改rank字段,您想要使用UPDATE语句,就像INSERT向表格添加新行一样:

UPDATE kyc3 
SET rank = CASE WHEN status = 'accepted' THEN 1
                  WHEN status = 'rejected' THEN 2
                  WHEN status = 'registered' THEN 3
                  WHEN status = 'scanned' THEN 4 
             END
于 2013-07-23T13:03:09.007 回答
2

您可以使用update来填充现有行的单元格。

update kyc3
set rank = CASE WHEN status = 'accepted' THEN 1
                WHEN status = 'rejected' THEN 2
                WHEN status = 'registered' THEN 3
                WHEN status = 'scanned' THEN 4
           END

insert仅用于创建行。

于 2013-07-23T13:03:30.327 回答