在Microsoft SQL Server中,可以指定"重音不敏感"排序规则(对于数据库,表或列),这意味着可以进行类似的查询
SELECT * FROM users WHERE name LIKE 'João'
Run Code Online (Sandbox Code Playgroud)
找到一个带有Joao名字的行.
我知道可以使用unaccent_string contrib函数从PostgreSQL中删除字符串中的重音符号,但我想知道PostgreSQL是否支持这些"重音不敏感"排序规则,以便SELECT上述方法可行.
我有一个使用PostgreSQL 9.X和JPA2(Hibernate实现)的Java EE项目.如何强制类似查询不区分大小写并且不区分重音?
我能够更改数据库的字符集,因为它是第一个使用它的项目.
SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
Run Code Online (Sandbox Code Playgroud)
输入tb1
slno name number
1 aaa 111
2 Aaa 111
3 abb 221
4 Abb 121
5 cca 131
6 cca 141
7 abc 222
8 cse 222
Run Code Online (Sandbox Code Playgroud)
这个查询只能找到相同的数字和名称中的重复项,但它不能在第3和第4行找到重复项!
SELECT count(*), lower(name)
FROM tbl
GROUP BY lower(name)
HAVING count(lower(name)) > 1
Run Code Online (Sandbox Code Playgroud)
这个查询可以找到名字中的所有重复项!它完美地运作
SELECT count(*), number
FROM tbl
GROUP BY number
HAVING count(number) > 1
Run Code Online (Sandbox Code Playgroud)
这个查询可以找到所有重复的数字!它完美地运作
我想要一个查询,它可以找到名称和数字中的所有重复项,无论名称是小写还是大写
output
name number count
2 111 aaa
2 --- abb …Run Code Online (Sandbox Code Playgroud)