本文介绍了如何从 SQL 查询返回默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果查询没有返回任何行,是否有任何简单的方法可以返回单个标量或默认值?

Is there any easy way to return single scalar or default value if query doesn't return any row?

此时我有这样的代码示例:

At this moment I have something like this code example:

IF (EXISTS (SELECT * FROM Users WHERE Id = @UserId))
    SELECT Name FROM Users WHERE Id = @UserId
ELSE
    --default value
    SELECT 'John Doe'

如何在不使用 IF-ELSE 的情况下以更好的方式做到这一点?

How to do that in better way without using IF-ELSE?

推荐答案

假设名称不可为空并且 Id 是唯一的,因此最多可以匹配一行.

Assuming the name is not nullable and that Id is unique so can match at most one row.

 SELECT
    ISNULL(MAX(Name),'John Doe')
 FROM
    Users
 WHERE
    Id = @UserId

这篇关于如何从 SQL 查询返回默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-03 05:35