我想知道sql中的max char值是多少?我在C#中注意到了这一点\uFFFF,但是当我使用该值来比较一个字符串时,SQL认为它是一个空字符串.
如果重要,该表位于SQL_Latin1_General_CP1_CI_AS中.
对什么是ascii有一种深刻的误解......
ASCII是一个7位代码(0到127),其中字符是固定的
第8位第二次提供此范围(128到255).在这个区域中,字符取决于代码页和排序规则.
CHAR作为BYTE(内存中的8位)的思考是误导性的......
试试这个,都返回一个资本 A
SELECT CHAR(65) COLLATE Latin1_General_CI_AS
SELECT CHAR(65) COLLATE Arabic_CI_AS
Run Code Online (Sandbox Code Playgroud)
代码255呈现Latin1_General_CI_ASas ÿ,阿拉伯语排序规则似乎没有可打印的字符,因此是问号.
SELECT CHAR(255) COLLATE Latin1_General_CI_AS
SELECT CHAR(255) COLLATE Arabic_CI_AS
Run Code Online (Sandbox Code Playgroud)
简而言之:SQL将其呈现为空字符串不正确.这取决于您的设置
| 归档时间: |
|
| 查看次数: |
4860 次 |
| 最近记录: |