在資料查詢中,有些欄位的值為null,但是我們一般不會直接把null顯示給使用者,所以需要用其他方式替換一下,比如「no value」。
例如有下面兩個表:
t_teacher
id name
------------
1 teacher1
2 teacher2
3 teacher3
4 teacher4
t_course
id name tid
---------------
1 course1 2
2 course2 1
3 course3 2
4 course4 3
5 course5 5
如果我們將teacher表與course表進行左聯接,那麼效果是這樣的:
select t_teacher.id, t_teacher.`name`, t_course.`name`
from
`t_teacher`
left
join t_course on t_teacher.id = t_course.tid;
輸出結果:
name name1
2 teacher2 course1
1 teacher1 course2
2 teacher2 course3
3 teacher3 course4
4 teacher4 null
可以看到最後一行的資料name1為null,但是這樣不太友好,所以需要替換一下,我們用case處理一下這個字段:
select t_teacher.id, t_teacher.`name`, (case
when t_course.`name`
isnull
then
'no value'
else t_course.`name`
end) as cname
from
`t_teacher`
left
join t_course on t_teacher.id = t_course.tid;
輸出結果:
id name cname
-----------------------
2 teacher2 course1
1 teacher1 course2
2 teacher2 course3
3 teacher3 course4
4 teacher4 no value
這樣最後一行就顯示了「no value」。 sql字段值的替換
資料庫有一張表bug 缺陷記錄表 裡面有欄位severity 嚴重程度 severity的值實際為1,2,3,4,但希望在查詢結果中將severity的1,2,3,4值顯示為其他的值,但severity的實際值不會改變 例如 資料表的結構和資料如下 bug id name severity 1 張三...
vb中判斷SQL中的NULL值
資料庫中的空值是乙個很抽象的概念,空值為null,這和沒有值不一。打個比方,比如說有個瓶子,裡面什麼都沒有只有空氣,這是沒有值 另外乙個瓶子,裡面是真空的,這叫空值。表現在程式上也就是str 和str is null 這不是一回事 在從資料庫裡抽取資料的時候,一般都會遇到null值的問題,其實歸根結...
SQL優化 NULL值與索引的使用
null是資料庫中特有的資料型別,當一條記錄的某個列為null,則表示這個列的值是未知的 是不確定的。簡單的說,由於null存在著無數的可能,因此兩個null不是相等的關係,同樣也不能說兩個null就不相等,或者比較兩個null的大小,這些操作都沒有意義,得不到乙個確切的答案。那麼,乙個欄位有可能存...