我试图比较两个表,但我不断得到看起来为空的值,但实际上不是。
SET @secret_message = CHAR(0) + 'Hello World!';
SELECT @secret_message, RIGHT(@secret_message,12)
Run Code Online (Sandbox Code Playgroud)
据我所知,如果值以 NULL 开头,SSMS 将停止读取这些值。
这是错误还是功能?
字节就在那里;这是显示结果的代码,但没有显示结果。
\n当SQL Server存储字符串数据时,无论内容如何,它都知道有多少个字符。类似地,较新的编程环境倾向于通过将长度包含为自己的字段(通常第一个字段作为固定长度 int)来对字符串进行编码
\n然而,较旧的字符串处理库 \xe2\x80\x94 尤其是来自 C/C++ 的字符串处理库,它们反过来支撑了我们的许多核心操作系统和 GUI 桌面平台 \xe2\x80\x94 而不是使用 -\\0终止的字符串。这些库将遍历数据,直到找到字符\\0,然后停止。
所以我们这里得到的是 SQL Server 返回的数据,如下所示:
\n \\0Hello World!\nRun Code Online (Sandbox Code Playgroud)\n这又(正确地!)以老式字符串呈现,如下所示:
\n\\0Hello World!\\0\nRun Code Online (Sandbox Code Playgroud)\n因此,当我们实际去显示它时,最终看起来像这样:
\n \n| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |