【发布时间】:2012-02-07 14:06:20
【问题描述】:
我在名为的 nvarchar(100) 列上保存了字符串 地址。
SELECT UNICODE(address) FROM clients
这是结果集
0
它是什么符号?如何在字符串的其他位置找到此符号的索引?
【问题讨论】:
标签: sql-server tsql unicode
我在名为的 nvarchar(100) 列上保存了字符串 地址。
SELECT UNICODE(address) FROM clients
这是结果集
0
它是什么符号?如何在字符串的其他位置找到此符号的索引?
【问题讨论】:
标签: sql-server tsql unicode
如 BOL 中所述
返回 Unicode 标准定义的整数值,用于 输入表达式的第一个字符。
所以你也可以将第一个符号显示为二进制来检查它
SELECT UNICODE(address), CAST(SUBSTRING(address, 1, 1) as varbinary(2)) FROM clients
下面也返回0
SELECT UNICODE(CAST(0x00 AS NVARCHAR))
SELECT UNICODE(NCHAR(0))
所以 - 最简单的答案 - 它是一个 NCHAR(0) - 字符
要在字符串中查找NCHAR(0),请参见以下示例:
DECLARE @str NVARCHAR(100) = N'John'+NCHAR(0)+N'Smith'
SELECT CHARINDEX(NCHAR(0) COLLATE Latin1_General_BIN, @str)
【讨论】: