Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Защо SELECT DISTINCT a, b FROM... връща по-малко записи от SELECT DISTINCT A + '|' + B ОТ...?

Завършващите интервали могат да причинят това. За сравнения на низове те се игнорират.

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. СЪЮЗ ВСИЧКИ и НЕ В заедно

  2. Свържете се със SQL Server чрез PDO с помощта на драйвер на SQL Server

  3. Брой Брой последователни поява на стойности в табл

  4. Как да проверите съвместимостта на базата данни на SQL Server, след като sp_dbcmptlevel е остарял?

  5. SQL заявката не използва наличен индекс (SQL Server 2008)