小编moi*_*ter的帖子

在向varchar添加NULL时使用ISNULL

在尝试使用MSSQL时,我遇到了一些我无法解释的行为.

我在查看将NULL值添加到varchar时会发生什么,以及当我执行以下查询时:

SELECT
   ISNULL(NULL + ' ', 'test')
Run Code Online (Sandbox Code Playgroud)

我得到结果'te'.同样,如果我为任何其他单词更改单词test,我只会得到前两个字母.如果我增加+''中的空格数,我会在结果中得到额外的字母(所以NULL +'[two spaces]'给我'tes').有什么想法发生了什么?

如果我声明一个变量并将其设置为NULL,例如

DECLARE @testnull AS varchar(32)

SET @testnull = NULL

SELECT
ISNULL(@testnull + ' ', 'test')
Run Code Online (Sandbox Code Playgroud)

然后我得到结果'测试'(正如我所料).

sql sql-server

5
推荐指数
1
解决办法
2262
查看次数

标签 统计

sql ×1

sql-server ×1