2012-01-11 63 views
2

我把字符串保存在名爲 的nvarchar(100)列地址t-sql unicode函數返回0

SELECT UNICODE(address) FROM clients 

下面是結果集


什麼是象徵它是什麼?如何在我的字符串的另一個位置查找此符號的索引?

回答

4

如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) 
+0

SELECT CHARINDEX(clients.address,NCHAR(0))來自客戶端的,其中CHARINDEX(clients.address,NCHAR(0))> 0則返回:受影響0行。如何找到nchar(0)的索引? – loviji 2012-01-11 10:13:35

+0

可能會有CHAR(0)? – 2012-01-11 10:21:59

+0

你是對的:它是一個NCHAR(0)字符。但我無法找到它的字符串索引。 – loviji 2012-01-11 12:52:33