Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Заменете част от низ с еквивалент с главни букви от временна таблица за кръстосана референция - tsql

Ако имате вашите стойности, които искате да използвате като замяна в таблица, в състояние да извършите това действие многократно, тогава можете да създадете функция за извършване на замяната:

създайте функция replacement(@string varchar(max))връща varchar(max)asbegin с ReplaceWord(InternalWord, ExternalWord) като ( изберете InternalValue, ExternalValue от капитал ) изберете @string =REPLACE(@string, r. InternalWord, r.ExternalWord) от ReplaceWord r където CHARINDEX(r.InternalWord, @string)> 0 return @stringend 

След това, за да направите заявка за данните, можете да използвате:

SELECT dbo.replacement(i.Instrument) NewValueFROM instrument AS i 

Вижте SQL Fiddle с демонстрация

Което ще върне:

<предварителен код>| НОВА СТОЙНОСТ |------------------------------------------------ | Merck &Co INC Обикновени акции USD.5 || Newmont Mining CORP Обикновени акции USD INC 1,6 |

Забележка:Намерих основния код тук от @SQL Kiwi и го промени, за да използва функция, ако това е нещо, което ще трябва да правите последователно



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете колони от набора от резултати на съхранената процедура

  2. Премахнете странните знаци ( A с шапка) от колоната varchar на SQL Server

  3. Премахнете и намалете припокриващите се периоди от време

  4. Връщане на всички деактивирани ограничения в SQL Server (пример за T-SQL)

  5. Настройване на Liquibase с MS-SQL сървър