COALESCE和REPLACE功能

时间:2014-10-31 18:06:45

标签: sql sql-server

我试图用''替换查询中的所有空值,因为我们的接口不会接受NULL作为条目。我遇到了一段我的代码,我使用REPLACE函数来取消SSN中的DASHES。如何告诉系统为SSN列中的NULL值提供'',并且仍然为非空条目SSN执行REPLACE函数。

select distinct clients.CLIENT_ID_1 as SourceMRN,
 '' AS HMOMEMBER,
 '' as IDXMRN,
replace(clients.CLIENT_ID_2,'-','') as PatientSSN,

我正在思考类似这样的事情,但它不起作用。

CASE IF clients.client_id_2 is null then '' 
ELSE replace(clients.CLIENT_ID_2,'-','') as PatientSSN,END

我也想知道如何用''代替其他列的NULL,我看到空值会与上面的问题一样答案吗?

Select clients.last_name,
clients.first_name,
case if clients.middle_name is null then '' else clients.middle_name,

再次感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以使用isnull函数替换空值:

replace(isnull(clients.CLIENT_ID_2, ''),'-','') as PatientSSN

coalesce函数也可以以相同的方式使用。 isnullcoalesce之间的唯一区别是isnull专门用于替换空值,因此它只需要两个参数。

你也可以使用case,然后就是:

case
  when clients.client_id_2 is null then ''
  else replace(clients.CLIENT_ID_2,'-','')
end as PatientSSN,