gpt4 book ai didi

sql-server - 如果未找到任何行,我如何让此 SQL 返回 1

转载 作者:行者123 更新时间:2023-12-03 17:08:37 26 4
gpt4 key购买 nike

SQL 服务器 2008

SELECT ('ABC-' + 
MAX(CAST(
(SUBSTRING([ID], CASE CHARINDEX('-', [ID])
WHEN 0
THEN LEN([ID]) + 1
ELSE CHARINDEX('-', [ID]) + 1
END, 1000)+1)
AS VARCHAR)
)) AS next_id
FROM [STUFF]
WHERE [FK_DATA] = '12345'

[STUFF] 包含列 [ID],其值如“ABC-1”、“ABC-2”。但是 WHERE 子句可能会导致返回 0 行。

查询获取 ABS 的下一个增量,例如“ABC-3”。除非没有匹配的行。然后我没有得到任何结果。

它是子查询的一部分,所以我需要它返回“ABC-1”而不是什么都不返回。 IE。内部部分必须返回 1。(我的外部查询然后插入这个最新的增量。)

最佳答案

给你:

SELECT ('ABC-' + 
ISNULL(
MAX(CAST(
(SUBSTRING([ID], CASE CHARINDEX('-', [ID])
WHEN 0
THEN LEN([ID]) + 1
ELSE CHARINDEX('-', [ID]) + 1
END, 1000)+1)
AS VARCHAR)
)) AS next_id
, 1)
FROM [STUFF]
WHERE [FK_DATA] = '12345'

子查询放在 ISNULL 函数中。通过这样做,您是说如果子查询返回 NULL 值,则将其替换为值 1。

如果返回行,结果将与您已有的一样,但如果没有返回行,结果将为 1。

关于sql-server - 如果未找到任何行,我如何让此 SQL 返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43969569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com