postgresql SQL查询无法工作,因为在“COLLATE”处或附近出现语法错误

oymdgrw7  于 2023-04-05  发布在  PostgreSQL
关注(0)|答案(1)|浏览(546)

下面是我尝试运行的查询。
当我运行它时,我得到以下错误:
SQL错误[42601]:错误:语法错误在或接近“COLLATE”位置:151
有人知道问题出在哪里吗?

select iusum.sf_uid as numeric_id, institution_user.*
from institution_user
join institution_user_sf_user_mapping iusum
  on institution_user.user_id COLLATE utf8_general_ci = iusum.user_id
where institution_id = "6afc2d2c-ec90-455f-88bd-b6678b94be75"
cnjp1d6j

cnjp1d6j1#

这样的排序规则不存在,你需要类似这样的东西,它只适用于Postgres版本10以后的版本
您可能正在搜索Ilike
关键字ILIKE可以用来代替LIKE,以根据活动区域设置使匹配不区分大小写。这不在SQL标准中,而是PostgreSQL扩展。
对于早期版本也是如此

CREATE tABLE institution_user(user_id varchar(10),institution_id varchar(36))
CREATE TABLe institution_user_sf_user_mapping(user_id varchar(10))
SELECT * 
from institution_user 
  join institution_user_sf_user_mapping iusum 
    on institution_user.user_id COLLATE "en_US" = iusum.user_id 
where institution_id = '6afc2d2c-ec90-455f-88bd-b6678b94be75'
用户标识机构ID用户标识
SELECT 0

fiddle

相关问题