我面临着与Oracle,MySQL,snowflake查询一起使用where子句中的非ascii字符的问题。
SELECT * FROM TABLE WHERE col = 'Niño Pobre, Niño Rico';
此查询不返回任何结果。
有什么解决方案可以处理 where 子句中的非 ascii 字符,然后请回复我。
谢谢。
> Maurcin 和 user3278684 对 Snowflake Data wharehouse 发表了评论。
在 Snowflake 中处理多种语言的数据时,COLLATION(( 函数非常有用。
- https://docs.snowflake.net/manuals/sql-reference/functions/collate.html
- https://docs.snowflake.net/manuals/sql-reference/functions/collation.html
- 注意事项和限制,列出了用于搜索的支持函数:https://docs.snowflake.net/manuals/sql-reference/collation.html#limited-support-for-collation-in-built-in-functions
例如,假设您有一个名为反馈的表格,其中包含两列
<小时 />| 身份证 |feedback_string |
<小时 />| 1 |"尼诺·波布雷,尼诺·里科"|
<小时 />从反馈中选择整理(feedback_string( 哪里feedback_string像"%Niño Pobre, Niño Rico%";
如果要创建一个表来搜索特定语言的字符串,可以在 Snowflake 中创建上面的相同表,如下所示:
创建表反馈(ID 号,feedback_string varchar(20( 整理"sp"(;
插入到排序规则1 (v( 值(1,"尼诺波布雷,尼诺里科"(;
然后您可以使用 Like 进行搜索,但要知道搜索 N 将接近 ñ。