Skip to main content

MS SQL Server / SELECT clause with a CASE expression

In SQL Server, if you have a column which has NULLs and instead of nulls, if you want to display 'Nothing', what would you do?


The following query

SELECT CASE Dept_Name WHEN NULL THEN 'Nothing' ELSE Dept_Name END Dept_Name
FROM Inventory

would still display the nulls and not 'Nothing'.

Workaround:






1>
2> select * from employee
3> GO
ID name salary start_date city region
----------- ---------- ----------- ----------------------- ---------- ------
1 Jason 40420 1994-02-01 00:00:00.000 New York W
2 Robert 14420 1995-01-02 00:00:00.000 Vancouver N
3 Celia 24020 1996-12-03 00:00:00.000 Toronto W
4 Linda 40620 1997-11-04 00:00:00.000 New York N
5 David 80026 1998-10-05 00:00:00.000 Vancouver W
6 James 70060 1999-09-06 00:00:00.000 Toronto N
7 Alison 90620 2000-08-07 00:00:00.000 New York W
8 Chris 26020 2001-07-08 00:00:00.000 Vancouver N
9 Mary 60020 2002-06-09 00:00:00.000 Toronto W

(9 rows affected)
1>
2> -- Select with a CASE expression:
3>
4> SELECT ID
5> , Name
6> , CASE ID
7> WHEN 1 THEN 'Mountain'
8> WHEN 2 THEN 'Road'
9> WHEN 3 THEN 'Touring'
10> WHEN Null THEN 'Something'
11> ELSE 'No'
12> END As IDX
13> FROM Employee
14> GO
ID Name IDX
----------- ---------- ---------
1 Jason Mountain
2 Robert Road
3 Celia Touring
4 Linda No
5 David No
6 James No
7 Alison No
8 Chris No
9 Mary No

Better than CASE: There is a specific function for this,
ISNULL ( check_expression , replacement_value )

so your syntax would become

SELECT ISNULL( Dept_Name, 'Nothing' ) Dept_Name
FROM Inventory




Sources:
http://www.java2s.com/Code/SQLServer/Select-Query/CasewhenNULL.htm

Comments

Popular posts from this blog

Tips to improve performance of database-driven Java applications

Here are four tips, not really super cool or something you never heard and I rather say fundamentals but in practice many programmers  just missed these, you may also called this database performance tips but I prefer to keep them as Java because I mostly used this when I access database from Java application. Java database performance tips 1: Reduce the number of calls you make to the database server. Believe it or not if you see performance in seconds than in most cases culprit is database access code. since connecting to database requires connections to be prepared, network round trip and processing on database side, its best to avoid database call if you can work with cached value. even if your application has quite dynamic data having a short time cache can save many database round trip which can boost your java application performance by almost 20-50% based on how many calls got reduced. In order to find out database calls just put logging for each db call in DAO layer, e...

Integrating SwiftUI into Existing AppKit Cocoa Projects: A Step-by-Step Guide

As Apple continues to push SwiftUI as the future of app development across its platforms, many developers find themselves in a position where they need to integrate this modern framework into their existing AppKit Cocoa projects. This integration can breathe new life into older applications, allowing developers to take advantage of SwiftUI's declarative syntax and powerful features while maintaining their existing codebase. In this guide, we'll walk through the process of adding SwiftUI to an existing AppKit Cocoa project, providing you with the knowledge to modernize your macOS applications.

JBoss in Action

This book is divided into four parts, containing 15 chapters and two appendices. Chapter 1: The JBoss Application Server If you are using JBoss than you can simply skip Chapter 1. This chapter gets you up and running with JBoss by describing the directories and files that are part of JBoss AS, how to start and stop the server, and finally show how to deploy and undeploy a simple web application. Chapter 2(Managing the JBoss Application Server) starts with a description of how JBoss application server is architected;the JBoss Microcontainer and JMX. Next, you will learn how each of these components are configured using its own configuration file, and how you can change these as well. Next, we get a closer look at a few of the management tools provided by JBoss like the JMX Console and twiddle. And finally, a look at some MBeans that provide helpful information,the MBeans that give the list of names in the JNDI namespace or a list of system properties. Chapter 3(Deploying appl...