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

SQL Server ganti, hapus semua setelah karakter tertentu

Gunakan KIRI dikombinasikan dengan CHARINDEX:

UPDATE MyTable
SET MyText = LEFT(MyText, CHARINDEX(';', MyText) - 1)
WHERE CHARINDEX(';', MyText) > 0

Perhatikan bahwa klausa WHERE melewatkan pembaruan baris yang tidak memiliki titik koma.

Berikut adalah beberapa kode untuk memverifikasi SQL di atas berfungsi:

declare @MyTable table ([id] int primary key clustered, MyText varchar(100))
insert into @MyTable ([id], MyText)
select 1, 'some text; some more text'
union all select 2, 'text again; even more text'
union all select 3, 'text without a semicolon'
union all select 4, null -- test NULLs
union all select 5, '' -- test empty string
union all select 6, 'test 3 semicolons; second part; third part;'
union all select 7, ';' -- test semicolon by itself    

UPDATE @MyTable
SET MyText = LEFT(MyText, CHARINDEX(';', MyText) - 1)
WHERE CHARINDEX(';', MyText) > 0

select * from @MyTable

Saya mendapatkan hasil berikut:

id MyText
-- -------------------------
1  some text
2  text again
3  text without a semicolon
4  NULL
5        (empty string)
6  test 3 semicolons
7        (empty string)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menerapkan aplikasi dengan database sql server pada klien

  2. Menggabungkan nilai baris T-SQL

  3. Tidak dapat memotong tabel karena direferensikan oleh batasan KUNCI ASING - Tutorial SQL Server / TSQL Bagian 70

  4. Penggunaan SQL Server sp_msforeachtable untuk memilih hanya tabel yang memenuhi beberapa kondisi

  5. MVC4:UserIsInRole - Tidak dapat terhubung ke database SQL Server