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

Fungsi String T-SQL:perbedaan antara menggunakan Kiri/Kanan dan Substring dan perilaku aneh

Anda memiliki spasi tambahan

KANAN akan menghasilkan spasi tetapi LEN mengabaikan spasi tambahan

DECLARE @foo varchar(100)
SET @foo = 'abc12345def   ' --3 spaces

--right or substring
SELECT RIGHT(@foo, 3)
SELECT SUBSTRING(@foo, LEN(@foo)-2, LEN(@foo))

--demonstrate you get spaces
SELECT REPLACE(RIGHT(@foo, 3), ' ', 'z') --single space

--length differences
SELECT LEN(@foo), DATALENGTH(@foo)

--solution
SELECT RIGHT(RTRIM(@foo), 3)
--or trim your column values before storing

Lihat SETEL ANSI_PADDING

Catatan:Anda tidak akan dapatkan NULL untuk input non NULL...

--only NULL if you send in NULL
SELECT RIGHT(NULL, 3)



  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 saya bisa menyorot sebuah kata dalam tampilan kisi?

  2. Cara mendapatkan Daftar Kendala Pemeriksaan Diaktifkan / Dinonaktifkan di Database SQL Server - Tutorial SQL Server / TSQL Bagian 86

  3. Impor kolom spreadsheet Excel ke database SQL Server

  4. Apa yang dilakukan SQL Server dengan permintaan waktu habis?

  5. Representasi berbeda dari UUID di Java Hibernate dan SQL Server