【发布时间】:2017-04-18 18:31:17
【问题描述】:
我正在尝试运行类似于以下内容的查询。我基本上是在尝试有条件地更改更新文本的格式。我需要一些帮助,因为我尝试了几种不同的方法但没有成功。提前致谢。
UPDATE bL SET
bL.[QUANTITY] = bL.[QUANTITY] + 2,
bL.[SERIAL_NUMBERS] =
(
CASE WHEN bL.[SERIAL_NUMBERS] IS NOT NULL
THEN ISNULL(bL.[SERIAL_NUMBERS], '') + 'EOSB7U310007; EOSB7U310022'
ELSE bL.[SERIAL_NUMBERS] + '; EOSB7U310007; EOSB7U310022'
)
FROM [ROBOTICS_OPTICS_MECHUAT].[dbo].[AOF_BOXES_LINES] AS bL
LEFT JOIN [ROBOTICS_OPTICS_MECHUAT].[dbo].[AOF_BOXES] AS bO
ON bL.[AOF_BOXES_ID] = bO.[ID]
WHERE bO.[SELECTED] = 'True'
【问题讨论】:
-
删除
case when之前的select。 -
另外,将
null连接到字符串将产生null。 -
@ZoharPeled 抱歉,鉴于单元格值为空,我忘了添加 I ISNULL()。
-
@WEI_DBA 哇,我怎么会错过...这表明你,当你厌倦了看某物时,第二双眼睛总是有益的:D
-
Zohar 的缩短版可能最适合您。试一试。
标签: sql sql-server sql-server-2008 sql-server-2012 sql-server-2008-r2