SQL SERVER 2005 我有个字段想保存带下标的数据,如M2(后面的2是下标),数据类型是nvarchar(50),用nvarchar来保存带上标的数据是可以保存的(如mg/m²),求保存带下标的数据该如何保存?
以下是在CSDN中问题帖子的有用回复:
有用的回复1:
1、转成图片保存
2、拆分成两个字段保存,一个一般的,一个下标
回复2:
定义规则,过滤吧
比如上标都 <pi>
下标都 <sub>
前台程序一般都能显示的,多一个判断而已
回复3:
估计你那个平方符号本来就有这个现成的字符,所以能储存显示,不应该算上标
而别的字符你即使弄成上标也不能储存
不信你把a弄成上标试试
下标本来就没有这种现成的字符,所以不行
回复4:
引用 22 楼 billpu 的回复:
看看SQL codeCREATE TABLE tb (col1 NVARCHAR(10))INSERT tb SELECT N'mg/m²' UNION ALL SELECT '1₂'SELECT * FROM tb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
CREATE TABLE tb (col1 NVARCHAR(10)) INSERT tb SELECT N 'mg/m²' UNION ALL SELECT N '1₂' SELECT * FROM tb drop table tb /* col1 ---------- mg/m² 1₂ (所影响的行数为 2 行) */ |
还真能行,厉害,以前没用过这种下标的数据.
这个就是word里粘贴出来的呀
to 楼主:首先这个下标是一个字,或者字符,我认为之所以网页里可以显示,而sqlserver不能显示的原因是网页比如csdn采用的编码集是(可变字节)utf-8,而sqlserver采用的是双字节(ucs-2),而这个下标是在ucs-2之外的(我估计在3字节到4字节当中),在utf-8之内的,所以sqlserver不能保存这个字.
不一定对,仅供参考
CREATE TABLE tb (col1 NVARCHAR(10))
INSERT tb SELECT N'mg/m²' UNION ALL
SELECT '1₂'
SELECT * FROM tb