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

yfjy0ee7  于 2023-04-29  发布在  Oracle
关注(0)|答案(2)|浏览(148)

在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关键字,这样我就可以搜索大小写敏感性和重音敏感性,因为我认为合适。

t3psigkw

t3psigkw1#

SELECT *
FROM MyTable
WHERE NLSSORT(MyField, 'NLS_SORT = Latin_AI') = NLSSORT('BobDillon', 'NLS_SORT = Latin_AI')
py49o6xq

py49o6xq2#

this thread中,您可以执行以下操作:

select * from your_table 
where utl_raw.cast_to_varchar2((nlssort(your_column, 'nls_sort=binary_ai'))) like lower('%word%')

相关问题