Oracle中的重音和不区分大小写的COLLATE等效项

Oracle中的重音和不区分大小写的COLLATE等效项,oracle,Oracle,在Microsoft SQL Server中,如果要在区分大小写的数据库中进行不区分大小写的搜索,可以运行以下SQL: SELECT * FROM MyTable WHERE MyField = 'BobDillon' COLLATE Latin1_General_CI_AI 这将找到所有“bobdillon”条目 如果我想在Oracle中也这样做,我知道我可以做到: SELECT * FROM MyTable WHERE UPPER(MyField) = 'BOBDILLON' 但我想知道

在Microsoft SQL Server中,如果要在区分大小写的数据库中进行不区分大小写的搜索,可以运行以下SQL:

SELECT * FROM MyTable
WHERE MyField = 'BobDillon' COLLATE Latin1_General_CI_AI
这将找到所有“bobdillon”条目

如果我想在Oracle中也这样做,我知道我可以做到:

SELECT * FROM MyTable
WHERE UPPER(MyField) = 'BOBDILLON'
但我想知道是否有与collate关键字直接等效的关键字,因此我可以搜索大小写敏感度和重音敏感度,因为我认为合适。

从您可以执行以下操作:

SELECT *
FROM MyTable
WHERE NLSSORT(MyField, 'NLS_SORT = Latin_AI') = NLSSORT('BobDillon', 'NLS_SORT = Latin_AI')
select * from your_table 
where utl_raw.cast_to_varchar2((nlssort(your_column, 'nls_sort=binary_ai'))) like lower('%word%')

应该是
Latin_AI
,这样它也不区分重音。