Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thay thế một phần của chuỗi bằng chữ hoa tương đương từ bảng tạm thời tham chiếu chéo - tsql

Nếu bạn có các giá trị mà bạn muốn sử dụng để thay thế trong một bảng có thể thực hiện hành động này nhiều lần, thì bạn có thể tạo một hàm để thực hiện thay thế:

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

Sau đó, để truy vấn dữ liệu, bạn có thể sử dụng:

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

Xem SQL Fiddle with Demo

Cái nào sẽ trở lại:

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

Lưu ý:Tôi đã tìm thấy mã cơ sở tại đây từ @SQL Kiwi và đã thay đổi nó để sử dụng một hàm nếu đây là điều bạn sẽ phải làm trên cơ sở nhất quán



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn n hàng ngẫu nhiên từ bảng SQL Server

  2. Tổng hợp chuỗi được nhóm / LISTAGG cho SQL Server

  3. SQL:tìm kiếm một chuỗi trong mỗi cột varchar trong cơ sở dữ liệu

  4. Cập nhật một bước công việc cho một công việc đại lý máy chủ SQL (T-SQL)

  5. Hiểu kích thước bộ nhớ ‘datetime2’ trong SQL Server