我对替换功能有疑问:

MyTable:

ID     | Header| Year
-----------------------
123    |   1   | 2017
456    |   3   | 2016
658    |   2   | 2015
587    |   6   | 2014
....


我想将收入代码替换为实际值,例如:


如果为1,则为$ 31230- $ 41400
如果2将是$ 41560- $ 50300
如果为3,则为$ 51620- $ 60200
如果是4它将是$ 61230- $ 73000
如果9 ....


在这种情况下,我无法使用替换功能,

SELECT
    ID,
    REPLACE (REPLACE(INCOME_CODE, '1','$31230-$41400'), '2', '$41560-$50300'),
    YEAR
FROM
    MyTable


因为第二个REPLACE函数将在第一个替换中抓住任何数字2,并替换为$ 41560- $ 50300。

它会像
$ 31 $ 41560- $ 5030030- $ 41400。

最佳答案

您可以使用CASE语句。

CASE INCOME_CODE
     WHEN 1 THEN '$31230-$41400'
     WHEN 2 THEN '$41560-$50300'
     WHEN 3 THEN '$$51620-$60200'
     WHEN 4 THEN '$61230-$73000'
     ..
END

10-06 12:08