比较三列中的空值,并将最新数据放入/写入非空的列。 [英] Compare null value in three columns and put/ write the latest data into the column which is not null.
本文介绍了比较三列中的空值,并将最新数据放入/写入非空的列。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
SELECT R. [FORM_ID],R.APPROVAL_STATUS,A.FORM_ID,A.APPROVAL_DECISION,S.FORM_ID,S。 APPROVAL_DECISION,
ISNULL(S.APPROVAL_DECISION,A.APPROVAL_DECISION) AS AD3
FROM [PREV_REQUEST_TO_RECRUIT] AS R
LEFT 加入 [HR_AUTHORISATION] ON R.FORM_ID = A.FORM_ID
left < span class =code-keyword> join [SEN_MGR_AUTHORISATION] S R.FORM_ID = S.FORM_ID
当你们两个S都可以帮助我将R.APPROVAL_STATUS的值输入到同一列AD3中.APPROVAL_DECISION,A.APPROVAL_DECISION为空。
谢谢,
Sathish
解决方案
SELECT COALESCE (S.APPROVAL_DECISION,A.APPROVAL_DECISION,R.APPROVAL_STATUS) AS SomeColumn
或者,如果由于某种原因你不想要前2个值而你的条件只是在前2个为空时获得第三个你可以使用CASE声明。
SELECT CASE WHEN S.APPROVAL_DECISION IS NULL AND A.APPROVAL_DECISION IS NULL 那么 R.APPROVAL_STATUS ELSE ' WhateverYouWant' END AS SomeColumn
SELECT R.[FORM_ID], R.APPROVAL_STATUS,A.FORM_ID,A.APPROVAL_DECISION, S.FORM_ID,S.APPROVAL_DECISION,
ISNULL(S.APPROVAL_DECISION,A.APPROVAL_DECISION) AS AD3
FROM [PREV_REQUEST_TO_RECRUIT] AS R
LEFT JOIN [HR_AUTHORISATION] A ON R.FORM_ID=A.FORM_ID
left join [SEN_MGR_AUTHORISATION] S on R.FORM_ID = S.FORM_ID
Could you please help me in getting the value of R.APPROVAL_STATUS into the same column AD3 when both S.APPROVAL_DECISION,A.APPROVAL_DECISION is null.
Thanks,
Sathish
解决方案
COALESCE should help you in this case. It returns the first non-null value.
SELECT COALESCE(S.APPROVAL_DECISION,A.APPROVAL_DECISION, R.APPROVAL_STATUS) AS SomeColumn
Or, if for some reason you don't want the first 2 values and your condition is to get the third only when the first 2 are null you can use a CASE statement.
SELECT CASE WHEN S.APPROVAL_DECISION IS NULL AND A.APPROVAL_DECISION IS NULL THEN R.APPROVAL_STATUS ELSE 'WhateverYouWant' END AS SomeColumn
这篇关于比较三列中的空值,并将最新数据放入/写入非空的列。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文