sql >> Databasteknik >  >> RDS >> Sqlserver

Varför returnerar SELECT DISTINCT a, b FROM... färre poster än SELECT DISTINCT A + '|' + B FRÅN...?

Släpande utrymmen kan orsaka detta. För strängjämförelser ignoreras dessa.

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. detta är fel ORA-12154:TNS:kunde inte lösa den angivna anslutningsidentifieraren?

  2. Omedelbar uppdatering till JCombobox i Java

  3. Använda Inner Join för att bestämma intervallet mellan specifika poster och relaterade händelser i en tabell

  4. Bygga en MySQL eller MariaDB Databas Cold Standby på Amazon AWS