加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

sql-server-2008 – 使用ISNULL和NULLIF时,sql server 2008的返回值会缩短

发布时间:2020-05-24 13:59:00 所属栏目:MsSql 来源:互联网
导读:我有这个选择语句,我检查电话号码是否为空或空,如果是,那么我将返回’没有电话号码可用’.像这样 SELECT Name, ISNULL(NULLIF(Phone, ), No Phone Number is available) AS PhoneFROM Person 但是当电话号码为空或空时我没有收到全文“没有电话号码可用”.只

我有这个选择语句,我检查电话号码是否为空或空,如果是,那么我将返回’没有电话号码可用’.像这样

SELECT 
      Name,ISNULL(NULLIF(Phone,''),'No Phone Number is available') AS Phone
FROM Person

但是当电话号码为空或空时我没有收到全文“没有电话号码可用”.只返回前20个字符. Phone字段的长度也是20.所以我认为这是返回文本,具体取决于电话字段的长度.

有没有办法在不改变字段长度的情况下纠正这个问题?

解决方法

你是对的.

ISNULL使用第一个参数的数据类型和长度. COALESCE采用“最高优先级”.所以:

COALESCE(NULLIF(Phone,'No Phone Number is available') AS Phone

要么

ISNULL(NULLIF(CAST(Phone as varchar(30)),'No Phone Number is available') AS Phone

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读