我們在加載到我們的數據倉庫中的工具名稱存在問題,它們或者以大寫或正常情況下加載字符串(首字母大寫每個字)。我們有一個不斷變化的所有大寫字符串轉換爲正常情況下和其中的一些例子中涉及的函數低於:用交叉參考臨時表替換部分字符串 - 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」?有什麼方法可以查看替換字符串的長度,並且它只替換那個長度的單詞? –