sql-server - 特殊字符(下标)未正确显示

标签 sql-server subscript

我想将一些化学数据放入表格的列中。但在现有表格中,下标显示为普通字符。其中一些显示为问号。我应该怎么做才能解决它?

当我输入这段代码时

 SELECT N'H' + NCHAR(0x2082) + N'O'

正确显示“H2O”

当我将它放入现有表中时

 INSERT INTO tab (id, label)
 VALUES('100', N'H' + NCHAR(0x2082) + N'O')

它显示“H2O”不正确

最佳答案

您需要在表中使用 NVARCHAR/NCHAR 列而不是 VARCHAR/CHAR 来存储 unicode字符。

在下面的示例中,@table1 使用 NVARCHAR 数据类型正确存储公式,而 @table2 中存储相同的值>VARCHAR

DECLARE @table1 TABLE
(
    ID int,
    formula NVARCHAR(5)
)
DECLARE @table2 TABLE
(
    ID int,
    formula VARCHAR(5)
)

insert into @table1
SELECT '100', N'H' + NCHAR(0x2082) + N'O'

insert into @table2
SELECT '100', N'H' + NCHAR(0x2082) + N'O'

SELECT * FROM @table1;
SELECT * FROM @table2;

关于sql-server - 特殊字符(下标)未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29650019/

相关文章:

json - 当没有行时,如何让 JSON 子查询返回空数组而不是 null

perl - 我可以将 Perl 的映射与数组切片一起使用吗?

c++ - vector 下标超出范围

swift - 无法在 Swift 中为 '[Double]' 类型的值添加下标

r - 在 R 中绘制随机森林模型的重要性变量

c# - ASP.NET Core 6配置-不同环境下的不同数据库

SQL Server 选择两个值之间的行

SQL - 选择所有行并将列值替换为带有标识符的最大列值

sql - 如何根据特殊情况选择数据?

objective-c - 是否可以将 "keyed-subscripting"添加到 Class 对象?