我正在使用 case 语句提取两列并将它们选择为一列
Posted
技术标签:
【中文标题】我正在使用 case 语句提取两列并将它们选择为一列【英文标题】:I am extracting two columns using a case statement and selecting them into one single column 【发布时间】:2013-08-16 20:34:07 【问题描述】:我有两列名为 pno 和 rno 都是 varchar 有一个订单号,现在我的要求是
如果 rno 不为 null,则应打印 Actual Generated,如果不是,则其 Forecast Generated。
如果 pno 不为空,那么它应该打印 Reconciled 否则 Forecast Generated。
我的查询是:
select
case
when (pno!=null) then 'Reconciled'
when (pno=null) then 'Forecast1 Generated'
when (rno=null) then 'Forecast Generated'
when (rno!=null) then 'Actual Generated'
end as Status
from tablexyz
当我执行它时,我只会得到 pno 或 rno case 语句结果集。我的预期输出应该返回所有 case 语句。我无法使用 and in case 语句条件,因为我需要所有记录。 我在 Dbvisualizer 上运行它。
提前致谢。
【问题讨论】:
【参考方案1】:在SQL中应该使用pno is not null
而不是pno!=null
。SQL使用三值逻辑,pno!=null
是UNKNOWN,不是真也不是假,但由于不是真的,所以不采取这种情况。
所以你的陈述应该是这样的
select
case
when (pno is not null) then 'Reconciled'
when (pno is null) then 'Forecast1 Generated'
when (rno is null) then 'Forecast Generated'
when (rno is not null) then 'Actual Generated'
end as Status
from tablexyz
【讨论】:
抱歉提晚了,我用的是 Dbvisualizer以上是关于我正在使用 case 语句提取两列并将它们选择为一列的主要内容,如果未能解决你的问题,请参考以下文章
导入excel文件的C#函数选择任意两列并将它们逐个单元格添加并粘贴到其他列中