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

Mengapa SELECT DISTINCT a, b FROM... mengembalikan catatan lebih sedikit daripada SELECT DISTINCT A + '|' + B DARI...?

Spasi yang tertinggal dapat menyebabkan hal ini. Untuk perbandingan string, ini diabaikan.

CREATE TABLE #T
(
a varchar(10),
b varchar(10),
c varchar(10)
)

INSERT INTO #T
SELECT 'a ' as a, 'b' as b, 'c ' as c union all
SELECT 'a' as a, 'b' as b, 'c ' as c

SELECT DISTINCT a, b, c  
FROM #T /*1 result*/

SELECT DISTINCT a + '|' + b + '|' + c + '|'   
FROM #T /*2 results*/


SELECT DISTINCT LTRIM(RTRIM(a)) + '|' + LTRIM(RTRIM(b)) + '|' +
                LTRIM(RTRIM(c)) + '|'   
FROM #T /*1 result*/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengidentifikasi Masalah Kinerja SQL Server

  2. Bagaimana cara memasukkan 1000 tanggal acak di antara rentang yang diberikan?

  3. Hitung (*) vs Hitung (Id) di sql server 2005

  4. Perbaiki "Kesalahan overflow aritmatika mengonversi ekspresi ke tipe data int" di SQL Server

  5. Bagaimana cara membaca xml di t-sql?