SQL Server:UPPER最后五个字符

时间:2015-11-04 20:29:25

标签: sql sql-server

我有以下工作查询:

SELECT
    REPLACE(
        AddressLine1, RIGHT( AddressLine1, 5 ),
        UPPER( RIGHT( AddressLine1, 5 ) )
    )
FROM Person.Address

还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

使用连接:

select left(addressline1, len(addressline1) - 5) + upper(right(addressline1, 5))
from person.address;

您的方法很危险,因为无法保证最后五个字符只在地址中出现一次。

嗯,你也可以这样做:

select stuff(addressline1, len(addressline1) - 4, 5, upper(right(addressline1, 5)))
from person.address;

这两种表述都假设addressline1至少有5个字符。如果可以使用更短的地址,那么case可能是最简单的解决方案。