使用 ISNULL 和 NULLIF 时,sql server 2008 返回值会缩短
我有这个选择语句,我检查电话号码是否为空或为空,如果是,那么我将返回“没有可用的电话号码”。像这样
SELECT
Name,
ISNULL(NULLIF(Phone, ''), 'No Phone Number is available') AS Phone
FROM Person
但是当电话号码为空或为空时,我没有收到全文“没有可用的电话号码”。仅返回前 20 个字符。电话字段的长度也是 20。所以我认为这是根据电话字段的长度返回文本。
有没有办法在不改变字段长度的情况下纠正这个问题?
I have this select statement where I check whether phone number in null or empty and if they are then I would return 'No Phone Number is available'. Like this
SELECT
Name,
ISNULL(NULLIF(Phone, ''), 'No Phone Number is available') AS Phone
FROM Person
But when the phone number is null or empty I am not getting the full text 'No phone number is available'. Only the first 20 characters is getting returned. The length of Phone field is also 20. So I think this is returning text depending on the length of the phone field.
Is there a way to correct this without changing the field length?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你是对的。
ISNULL 使用第一个参数的数据类型和长度。 COALESCE 具有“最高优先级”。所以:
或者
You are correct.
ISNULL uses the datatype and length of the first parameter. COALESCE takes the "highest precedence" one. So:
Or