我试图在 postgresql 查询中做一个 instr,然后意识到它似乎没有 instr 函数。
找到这个网址http://www.postgresql.org/docs/9.1/static/plpgsql-porting.html#PLPGSQL-PORTING-APPENDIX
这显示了如何在 postgresql 的 plpgsql 语言中实现 instr。
但是它似乎不适用于 unicode varchar 列,因为我收到以下错误:
ERROR: character with byte sequence 0xe4 0xb9 0xa6 in encoding "UTF8" has no equivalent in encoding "WIN1252"
即使我用过
SET client_encoding = 'UTF8';
在我的客户端上。有人知道如何用 unicode 完成一个 instr 吗?
发现这position
是 postgresql 等价于instr
,但它给出了与上面相同的错误。
这也不起作用:
select start from cnetd where substr(start, 6, 1) <> '/' and position('/' in convert(start, 'UTF8', 'LATIN1')) > 0 limit 90;
ERROR: function convert(character varying, unknown, unknown) does not exist
LINE 1: ...re substr(start, 6, 1) <> '/' and position('/' in convert(st...
^
HINT: No function matches the given name and argument types. You might need to
add explicit type casts.