我们在加载到我们的数据仓库中的工具名称存在问题,它们或者以大写或正常情况下加载字符串(首字母大写每个字)。我们有一个不断变化的所有大写字符串转换为正常情况下和其中的一些例子中涉及的函数低于:用交叉参考临时表替换部分字符串 - tsql
Merck & Co Inc Common Stock Usd.5
Newmont Mining Corp Common Stock Usd Inc 1.6
但是也有这个,我们想的部分,当谈到大写举例来说,在上面的例子中,'Usd'应该变成'USD','Inc'变成'INC','Corp'变成'CORP'。
这些都是在交叉参考表中,但我不确定如何更新我的选择,以便当我选择我的正常情况下的仪器名称时,它将检查交叉参考表以确保更新(替换)部分应该大写为首都。
我得到尽可能的:
CREATE TABLE capital ([InternalValue] VARCHAR(255), [ExternalValue] VARCHAR(255));
CREATE TABLE instrument ([Instrument] VARCHAR(255));
INSERT INTO capital ([InternalValue], [ExternalValue])
VALUES
('Usd', 'USD'),
('Ltd', 'LTD'),
('Corp', 'CORP'),
('Inc', 'INC')
INSERT INTO instrument ([Instrument])
VALUES
('Merck & Co Inc Common Stock Usd.5'),
('Newmont Mining Corp Common Stock Usd Inc 1.6');
SELECT REPLACE(Instrument, 'Usd', 'USD') FROM instrument AS i
但我不知道我可以纳入资本表到这一点,以便它可以检查整个字符串的所有可能capitalisations。任何帮助?
感谢您的回应bluefeet我已经完美地工作。但正如@Blam暗示的那样,我如何确保我正在取代我想要取代的东西。即在上面的例子中,我们希望所有“Co”都是“CO”,但也要确保“Common”不会变成“COmmon”?有什么方法可以查看替换字符串的长度,并且它只替换那个长度的单词? –