elb*_*laf 0 dbnull increment sql-server-express query-builder
我正在使用SQL Express 2010查询构建器.我需要能够增加一个字段.
在我的后面代码中,我打了一个电话,比如
tableAdapter.IncrementLikeCount(id);
Run Code Online (Sandbox Code Playgroud)
如果我只使用一个增量,那么like字段可以为null,所以我想要一个.在该字段中将null视为零或b.如果为null,则设置为1,否则增加.
我尝试的最新内容是选项b,在查询构建器中包含以下代码:
UPDATE [dbo].[myTable]
SET [LikeCount] = IIF(ISNULL([LikeCount]), 1, LikeCount + 1)
WHERE ([ID] = @Original_ID)
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.查询构建器将继续在ISNULL内重写表达式,而不使用方括号和逗号,如下所示:
UPDATE [dbo].[myTable]
SET [LikeCount] = IIF(ISNULL(LikeCount,), 1, LikeCount + 1)
WHERE ([ID] = @Original_ID)
Run Code Online (Sandbox Code Playgroud)
有一个干净,简单的方法吗?
ISNULL语句需要一个默认值来回退,比如
ISNULL(LikeCount, 0)
Run Code Online (Sandbox Code Playgroud)
其中0是LikeCount变为IF的值,实际上它是null.
所以,试试吧
UPDATE [dbo].[myTable]
SET [LikeCount] = (ISNULL(LikeCount, 0) + 1)
WHERE ([ID] = @Original_ID)
Run Code Online (Sandbox Code Playgroud)
UPDATE
至于您在评论中发布的查询:
UPDATE Documents
SET docLikeCount = ISNULL(docLikeCount, 0) + 1
WHERE docID = @Original_docID
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1030 次 |
| 最近记录: |