Mysql:如果记录中的字段为空,我希望存储过程返回 N/A 作为值
Posted
技术标签:
【中文标题】Mysql:如果记录中的字段为空,我希望存储过程返回 N/A 作为值【英文标题】:Mysql: If a field in a record is empty I want the stored procedure to return N/A as value 【发布时间】:2018-02-16 01:39:19 【问题描述】:我在mysql
中有一个表,其中记录中的字段(默认值:无)没有任何值。
我正在使用存储过程从这个表中选择值,当这个字段没有值时,我应该得到值N/A
。
我尝试了以下代码,但我得到的字段没有值。
SELECT md.coding_id,
md.patient_id,
md.implant_date,
(case
when md.device_and_implant_description = ''
then 'N/A'
when md.device_and_implant_description !=0
then md.device_and_implant_description
end) as device_and_implant_description
FROM medical_devices_mapping as md
WHERE md.patient_id = p_id
p_id
值由用户指定。
这是结果:
这是我的表的结构:
【问题讨论】:
device_and_implant_description 在选择中出现两次,但您的输出只显示一个? @P.Salmon 是的,这是错误的。我只想要案例选择。我将编辑我的问题。感谢您的评论。 【参考方案1】:请使用 NUll 和 ""。
如果您只想在存储数据之前使用 NULL 或 '',请确保您存储的是 null 或空字符串,然后相应地使用条件。
【讨论】:
当我通过 phpmyadmin 插入数据时,此表在字段device_and_implant_description
中,我什么都不写。
请分享表模式,这将明确,如果默认值为空,那么它将存储空。如果您仍然不指定任何内容,它将存储 NULL。所以你可以在你的 SQL 中使用 NULL。【参考方案2】:
使用REGEXP
条件而不是''
SELECT md.coding_id, md.patient_id, md.implant_date,
CASE WHEN md.device_and_implant_description REGEXP '^[A-Za-z0-9]+$'
THEN md.device_and_implant_description
ELSE 'N/A'
END AS device_and_implant_description,
md.device_and_implant_description
FROM medical_devices_mapping md
WHERE md.patient_id = p_id
【讨论】:
感谢您的回复,但问题仍然存在。该值不为空。 因为默认值为无。你不能用NONE
替换''
吗(野人)
@MarkBaijens 我通过NONE
尝试过,在 mysql 存储过程中不是可识别的值。
我得到两个记录 N/A
作为价值。所以 else 语句对两条记录都执行。【参考方案3】:
也许你应该颠倒你的逻辑
case when trim(md.device_and_implant_description) is not null then md.device_and_implant_description
else 'N/A'
end
【讨论】:
不幸的是仍然没有运气! 然后检查非打印字符,如换行符回车等。【参考方案4】:我使用COALESCE()
找到了解决方案。
建议的解决方案如下:
SELECT md.coding_id,
md.patient_id,
md.implant_date,
(CASE when COALESCE(md.device_and_implant_description, '') !=''
then md.device_and_implant_description
when COALESCE(md.device_and_implant_description, '') =''
then 'N/A'
end) as device_and_implant_description
FROM medical_devices_mapping as md
WHERE md.patient_id = p_id
【讨论】:
以上是关于Mysql:如果记录中的字段为空,我希望存储过程返回 N/A 作为值的主要内容,如果未能解决你的问题,请参考以下文章