Maison > base de données > tutoriel mysql > sql NULL值的处理方法

sql NULL值的处理方法

WBOY
Libérer: 2016-06-07 17:47:42
original
1660 Les gens l'ont consulté

sql null值的处理方法

sqlserver 中isnull的用法一例

中有一列记录文章的访问次数。我现在要实现的功能是,每刷新一次页面。 访问次数+1。sql语句,art_count为访问次数,int类型。
update article set art_count="(art_count+1) where art_id="3 但如果art_count为null,则不起作用。
如果是oracle用decode可以很容易的实现此功能。sqlserver中如何实现类似的功能呢?
sqlserver中有一个函数isnull,此函数有两个参数isnull(p1,p2)其用法是如果p1为null,则用p2代替。
此函数类似oracle的nvl。例如
select avg(isnull(price, $10.00)) from titles 受到此函数的启发我这样写的sql语句
update article set art_count="(isnull(vote_count,0)+1) where art_id="3 "

 


-判断某些字段是否为空
--case
select case when '字段名' is null then 'n' else convert(varchar(20),'字段名') end as 'newname'
select case when null is null then 'n' else convert(varchar(20),null) end as 'newname'

--sql server 2005:coalesce
select coalesce('字符串类型字段','n') as 'newname'
select coalesce(convert(varchar(20),'非字符串类型字段'),'n') as 'newname'
select coalesce(convert(varchar(20),null),'n') as 'newname'

--coalesce,返回其参数中的第一个非空表达式
select coalesce(null,null,1,2,null)union
select coalesce(null,11,12,13,null)union
select coalesce(111,112,113,114,null)


null值也不是对所有的统计函数都有影响。一般来说。统计平均值(avg)时, null值是一定会有影响的;统计最小值(min)时, null值是可能会对 min 有影响,在我认为是有点随机性质;统计最大值(max)或统计和(null)时,null值是对其完全没有影响的。

所以又有一种说法是:null值不参加统计,不参加计算,只能用is判断。

判断null值语句:select * from 表 where 字段 is null;

转换null值语句:select 字段1,字段2,字段3,is null(字段3,’某个值’) from 表;

总之,我们要认真对待 null值,最好在使用统计函数时,都加上 is null,以防意外出现

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal