2017-04-14 115 views
0

我想知道什麼是最大的字符值是在SQL?我注意到在C#中這\uFFFF,但是當我使用該值來比較一個字符串SQL呈現爲一個空字符串,我認爲。CHAR的最大值是多少?

表爲SQL_Latin1_General_CP1_CI_AS如果該事項。

回答

6

還有就是深深的誤解是什麼ASCII ...

ASCII是7位代碼(0〜127)裏的人物是固定

第8位提供了這個範圍第二次(128到255)。在這個區域中,字符取決於代碼頁和排序規則。

CHAR

思想爲​​(在內存中的8位)被誤導...

試試這個,都返回一個captial A

SELECT CHAR(65) COLLATE Latin1_General_CI_AS 
SELECT CHAR(65) COLLATE Arabic_CI_AS 

代碼255呈現與Latin1_General_CI_ASÿ,與阿拉伯語整理似乎沒有可打印的字符,因此是問號。

SELECT CHAR(255) COLLATE Latin1_General_CI_AS 
SELECT CHAR(255) COLLATE Arabic_CI_AS 

因此,在短期:SQL呈現爲一個空字符串是不正確的。這取決於您的設置

0

你有沒有檢查Documentation因爲它清楚地說

的char [(N)]

固定長度,非Unicode字符串數據。 n定義 字符串長度,必須通過是從1的值。存儲 大小是n個字節。字符的ISO同義詞是字符。

+0

OP所指的是一個單獨的字符,而不是在一個字段中的字符的最大數量的最大字節值。 – Anonymous

+0

@Anonymous沒有OP說什麼*最大char值是在SQL *? – Rahul

+0

@Rahul有關C#這句話結合起來,我認爲解釋「最大字符值」爲「什麼是可以存儲在值範圍一個字符「(或char(1)字段) –

0

數字上,答案是255. CHAR具有潛力範圍爲0到255.它是一個8位代碼單位,用於爲字段配置的字符編碼(它可能繼承從表或數據庫)。

255是否是合法的代碼單元是一個完整的代碼點,它表示的字符,它的排序順序(就是你所說的最大的意思?),取決於歸類。 (排序規則指定一個字符編碼和排序順序。)


哦,如果你要SQL數據類型和別人比較,NVARCHAR和C#的char和.NET的字符全部使用UTF-16字符編碼。