Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Ganti bagian dari string dengan setara dengan huruf besar dari tabel temp lintas ref - tsql

Jika Anda memiliki nilai yang ingin Anda gunakan sebagai pengganti dalam tabel, Anda akan melakukan tindakan ini berulang kali, maka Anda dapat membuat fungsi untuk melakukan penggantian:

create function replacement(@string varchar(max))
returns varchar(max)
as
begin

    with ReplaceWord(InternalWord, ExternalWord) as
    (
        select InternalValue, ExternalValue
        from capital
    )
    select @string =  REPLACE(@string, r.InternalWord, r.ExternalWord)
    from ReplaceWord r
    where CHARINDEX(r.InternalWord, @string) > 0

    return @string
end

Kemudian untuk query data Anda dapat menggunakan:

SELECT dbo.replacement(i.Instrument) NewValue
FROM instrument AS i

Lihat SQL Fiddle dengan Demo

Yang akan kembali:

|                                     NEWVALUE |
------------------------------------------------
|            Merck & Co INC Common Stock USD.5 |
| Newmont Mining CORP Common Stock USD INC 1.6 |

Catatan:Saya menemukan kode dasar di sini dari @SQL Kiwi dan mengubahnya untuk menggunakan fungsi jika ini adalah sesuatu yang harus Anda lakukan secara konsisten



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat koneksi ODBC baru ke satu SQL Server jarak jauh

  2. SQL Server memeriksa sensitivitas huruf besar-kecil?

  3. Codeigniter:Cara mengatur koneksi ke server SQL (2008)

  4. Cara Mengubah Kolom dari Null menjadi Tidak Null di SQL Server

  5. INNER JOIN Dimana Klausul