在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关键字直接相同的内容,因此我可以根据需要搜索区分大小写和重音敏感度。
答案 0 :(得分:8)
SELECT *
FROM MyTable
WHERE NLSSORT(MyField, 'NLS_SORT = Latin_CI') = NLSSORT('BobDillon', 'NLS_SORT = Latin_CI')
答案 1 :(得分:0)
在this thread中,您可以执行以下操作:
select * from your_table
where utl_raw.cast_to_varchar2((nlssort(your_column, 'nls_sort=binary_ai'))) like lower('%word%')