BAD*_*EED 2 sql oracle select distinct uppercase
我在Oracle 10上有这个查询:
SELECT DISTINCT NOME
FROM ICT.UTENTE
WHERE UPPER(nome) LIKE UPPER('MA%');
Run Code Online (Sandbox Code Playgroud)
这工作,让我得到类似的东西:
MARIA LUISA
Mariano
MARIO
Run Code Online (Sandbox Code Playgroud)
我真正想要的是以大写字母表示每一行,但我无法想出一种将关键词DISTINCT和UPPER关键词组合在一起的方法.我试图用以下任何一个替换第一个查询行:
SELECT DISTINCT UPPER(nome) -- not a SELECTed expression
SELECT UPPER (DISTINCT nome) -- missing expression
SELECT DISTINCT UPPER nome -- upper: invalid identifier
SELECT UPPER DISTINCT nome -- FROM keyword not found where expected
Run Code Online (Sandbox Code Playgroud)
但我总是遇到麻烦!是否是唯一的解决方案?
这应该工作.
SELECT DISTINCT UPPER(nome)
Run Code Online (Sandbox Code Playgroud)
确实它确实有效.如果您收到此错误...
ORA-01791: not a SELECTed expression
Run Code Online (Sandbox Code Playgroud)
...那么你还没有发布整个查询.具体来说,您没有向我们展示ORDER BY子句.使用DISTINCT,ORDER BY子句中的属性必须与投影匹配.所以要么你需要......
ORDER BY upper(nome)
Run Code Online (Sandbox Code Playgroud)
......或者你可以按位置作弊和排序......
ORDER BY 1
Run Code Online (Sandbox Code Playgroud)