postgresql 特殊上标字符

kninwzqo  于 12个月前  发布在  PostgreSQL
关注(0)|答案(3)|浏览(127)

如何在PostgreSQL中插入带上标字符的字符串?
我想插入“TM”作为字符串“RACH”的幂?我尝试了以下查询:

update contact SET name=E'RACH$^'TM where id='10782'

字符串

ahy6op9u

ahy6op9u1#

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

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

字符串
其他一些字符(但不是全部!)在Unicode中有上标变体,但许多字体不支持这些异国情调的代码点,甚至不包括字形来表示它们。除了常见的'<$²',我宁愿使用格式来实现上标效果。
在SO上,您可以使用:用途:演示上标ABC
这是<sup>demo superscript ABC</sup>的输出
关于Wikipedia page on superscript characters的更多信息

如果你需要一个Map函数,在循环中使用**translate()**. replace()会 * 非常 * 低效。

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

tkclm6bt

tkclm6bt2#

我不知道是否有可能在不创建Map函数的情况下将符号转换为超级脚本,但你可以手动编写:

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

字符串

sql fiddle demo

Map函数可能是这样的:

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 demo

qqrboqgw

qqrboqgw3#

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

  • 使用特殊菜单部分插入所需的特殊符号。在度数的情况下,不要使用上索引来格式化您的数字-只需插入特殊符号。
  • 复制到剪贴板
  • 粘贴到数据库管理器中的单元格(Intellij的数据夹或其他)。

相关问题