· 7 years ago · Sep 16, 2018, 08:12 PM
1How to return default value from SQL query
2IF (EXISTS (SELECT * FROM Users WHERE Id = @UserId))
3 SELECT Name FROM Users WHERE Id = @UserId
4ELSE
5 --default value
6 SELECT 'John Doe'
7
8SELECT ISNULL(MAX(Name),'John Doe')
9 FROM Users
10 WHERE Id = @UserId
11
12SELECT ISNULL((SELECT TOP 1 Name FROM Users WHERE Id = @UserId), 'John Doe')
13
14SELECT Name FROM Users WHERE Id = @UserId UNION ALL
15SELECT 'John Doe' WHERE NOT EXISTS (SELECT Name FROM Users WHERE Id = @UserId)
16
17SELECT IsNULL(Name, 'John Doe') FROM Users WHERE Id = @UserId
18
19drop table users
20go
21create table users
22(id int,name varchar(20))
23go
24insert into users select 1,'1'
25 go
26declare @userid int
27set @userid = 1
28select isnull(username.username, 'John Doe')
29from (select @userid as userid) userid
30outer apply (SELECT name as username FROM Users WHERE Id = userid.userid ) username
31--outer apply (SELECT name as username FROM Users WHERE Id = @userid ) username
32
33SELECT Name FROM Users WHERE Id = @UserId
34if(@@ROWCOUNT = 0)
35 SELECT 'John Doe'
36
37declare @name varchar(100)
38set @name = (select top 1 name from users where id = @userId)
39if(@name is null) set @name = 'John Doe'
40select @name
41
42declare @userid int
43set @userid = 1
44select isnull(
45 (select name from users where id = @userid),
46 'John Doe'
47 )
48 go
49--My preffered would be this one..
50declare @name varchar(20),@userid int
51set @userid = 1
52select @name = name from users where id = @userid
53select isnull(@name,'John Doe')