我在表rspec
中有一个名为trace
的字段。
所以现在这个领域就像“Vol3 / data / 20070204_191426_FXBS.v3a”。
我只需要查询将其更改为“Vol3 / data / 20070204_191426_FXBS.V3A”格式。
答案 0 :(得分:2)
假设当前版本:
select left(rspec, - 3)||upper(right(rspec, 3))
from trace
对于旧版本:
select substr(rspec, 1, length(rspec) - 3)||upper(substring(rspec from '...$'))
from trace
答案 1 :(得分:2)
或者,涵盖所有可能性,如
abc123.jpeg
abc123
abc123.
abc.123.jpg
SELECT CASE WHEN rspec ~~ '%.%'
THEN substring(rspec, E'^.*\\.')
|| upper(substring(rspec , E'([^.]*)$'))
ELSE rspec
END AS rspec
FROM (VALUES
('abc123.jpeg')
, ('abc123')
, ('abc123.')
, ('abc.123.jpg')
) ASx(rspec); -- testcases
说明:
如果字符串没有点,请使用字符串 否则,将所有内容包括在字符串中的最后一个点中 以大写形式追加最后一个点之后的所有内容。