COLLATE Norwegian_100_CI_AI (cultura noruega) con DISTINCT error “los elementos ORDER BY deben aparecer en la lista de selección si SELECT DISTINCT está especificado”.
Estoy recibiendo un error al usar Norwegian_100_CI_AI
con DISTINCT
al utilizar la cultura noruega con DISTINCT.
Los elementos ORDER BY deben aparecer en la lista SELECT si se especifica SELECT DISTINCT.
Si cambio la cultura a DEFAULT
o la elimino, se ejecutará la consulta. Por favor, ayúdame.
CREATE TABLE Test1
(ID INT,
NAME VARCHAR(200)
)```
```sql
INSERT INTO Test1 (ID, NAME)
VALUES (1, 'T1'), (2, 'T2'), (3, 'T3'), (4, 'T4'), (5, 'T5'), (6, 'T6'), (7, 'T7'), (8, 'T8'), (9, 'T9'), (10, 'T10')
SELECT DISTINCT ID, NAME FROM Test1
ORDER BY NAME COLLATE Norwegian100CI_AI
SELECT DISTINCT ID, NAME FROM Test1
ORDER BY NAME COLLATE Norwegian100CI_AI
davy.ai
El mensaje de error nos indica que, debido a que estamos utilizando
DISTINCT
, todas las columnas por las que queremos ordenar también deben incluirse en la declaraciónSELECT
. En este caso, estamos intentando ordenar por la columnaNAME
utilizando la intercalaciónNorwegian_100_CI_AI
, pero solo estamos seleccionando las columnasID
yNAME
.Para solucionar esto, podemos incluir la columna
NAME
en la declaraciónSELECT
:Alternativamente, podemos eliminar la palabra clave
DISTINCT
si no es necesaria para nuestra consulta:Si deseas cambiar la intercalación a
DEFAULT
, simplemente puedes eliminar la fraseCOLLATE Norwegian_100_CI_AI
: