如何在PostgreSQL中插入带有超级脚本字符的字符串?
我想插入"TM"作为字符串"RACH"的幂?我尝试了以下查询:
update contact SET name=E'RACH$^'TM where id='10782'
使用专用字符®或™作为商标标志。
UPDATE contact SET name = 'RACH™' WHERE id='10782' -- '™' not 'ᵀᴹ'
其他一些字符(但不是全部!)在unicode中有上标变体,但许多字体不支持这些奇异的代码点,甚至不包括表示它们的字形。我通常会不鼓励使用除常见的cco²³之外的任何一种。您通常会使用格式来实现上标效果。
例如,在SO上,您可以使用:demo superscript ABC
这是<sup>demo superscript ABC</sup>
的输出
有关上标字符的更多信息,请访问维基百科页面。
如果需要映射函数,请使用translate()
中将是非常低效的。replace()
在循环
translate('TM', 'ABDEGHIJKLMNOPRTU', 'ᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁ');
我不知道是否可以在不创建映射函数的情况下将符号转换为上标,但您可以手动编写:
update contact SET name='RACHᵀᴹ' where id='10782'
sql-fiddle演示
映射函数可以是这样的:
create or replace function superscript(data text)
returns text
as
$$
declare
ss text[];
lt text[];
begin
ss := '{ᴬ,ᴮ,ᴰ,ᴱ,ᴳ,ᴴ,ᴵ,ᴶ,ᴷ,ᴸ,ᴹ,ᴺ,ᴼ,ᴾ,ᴿ,ᵀ,ᵁ}';
lt := '{A,B,D,E,G,H,I,J,K,L,M,N,O,P,R,T,U}';
for i in 1..array_length(ss, 1)
loop
data := replace(data, lt[i], ss[i]);
end loop;
return data;
end;
$$
language plpgsql;
sql-fiddle演示
在Word或LibreOffice Writer等文本编辑器中:
- 使用特殊菜单部分插入所需的特殊符号。在学位的情况下,不要使用上索引来格式化你的数字——只需插入一个特殊的符号
- 将其复制到剪贴板
- 粘贴到数据库管理器中的单元格(Intellij的Data Grip或其他)