特殊上标字符

问题描述 投票:0回答:3

如何在 PostgreSQL 中插入带有超级脚本字符的字符串?

我想插入“TM”作为字符串“RACH”的幂?我尝试了以下查询:

update contact SET name=E'RACH$^'TM where id='10782'
sql postgresql postgresql-9.1 superscript
3个回答
3
投票

使用专用字符“®”或“™”作为商标符号。

UPDATE contact SET name = 'RACH™'  -- '™' not 'ᵀᴹ'
WHERE  id = '10782';

其他一些字符(但不是全部!)在 Unicode 中具有上标变体,但许多字体不支持这些外来代码点,甚至不包含表示它们的字形。除了常见的‘¹ ² ³’之外,我更愿意使用格式化来达到上标的效果。

在这里,您可以使用:演示上标 ABC
这就是

<sup>demo superscript ABC</sup>

的输出 更多信息请参见有关上标字符的维基百科页面

如果您需要映射功能,请使用

translate()
replace()
循环
非常效率低下。

translate('TM', 'ABDEGHIJKLMNOPRTU', 'ᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁ');

1
投票

我不知道是否可以将符号转换为超级脚本而不为此创建映射函数,但您可以手动编写它:

update contact SET name='RACHᵀᴹ' where id='10782'

sql 小提琴演示

映射函数可能是这样的:

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 小提琴演示


0
投票

在 Word 或 LibreOffice Writer 等文本编辑器中:

  • 使用特殊菜单部分插入所需的特殊符号。如果是度数,请勿使用上索引来格式化数字 - 只需插入特殊符号即可。
  • 复制到剪贴板
  • 粘贴到数据库管理器中的单元格中(Intellij 的 Data Grip 或其他)。
© www.soinside.com 2019 - 2024. All rights reserved.