Sql 用于2列的大小写

Sql 用于2列的大小写,sql,Sql,我试图让我的“Case”语句在两个单独的列中做两件不同的事情 如下所示:当满足“标准1”时,“第1列”应具有“良好”。当满足“标准2”时,“第2列”将得到1 有人能帮忙吗 SELECT [Item_Number],(Sum(Total_Orders)-Sum(On_Hand)) AS Total_Reorder, CASE WHEN (Sum(Total_Reorder)-Sum(On_Hand))<0 THEN 0 WHEN

我试图让我的“Case”语句在两个单独的列中做两件不同的事情

如下所示:当满足“标准1”时,“第1列”应具有“良好”。当满足“标准2”时,“第2列”将得到1

有人能帮忙吗

SELECT [Item_Number],(Sum(Total_Orders)-Sum(On_Hand)) AS Total_Reorder,
    CASE 
         WHEN (Sum(Total_Reorder)-Sum(On_Hand))<0 THEN 0        
         WHEN Sum(Total_Reorder)>0 AND (Sum(Total_Reorder)-Sum(On_Hand))<=0 THEN 'On Hand' END AS OnHand
选择[项目编号],(总和(总订单)-总和(现有)作为总订单,
案例

当(Sum(Total_Reorder)-Sum(On_Hand))0和(Sum(Total_Reorder)-Sum(On_Hand))您发布的代码示例没有反映您描述的问题,但我认为以下方法可行:

SELECT CASE WHEN Criteria1 THEN 'Good' END AS Column1,
       CASE WHEN Criteria2 THEN 1 END AS Column2

根据其他人所说的,这里有一个完整的例子:

create table casetest
( col1 int,
  col2 int
  ) ;


insert into casetest select 2,1 ;
insert into casetest select 2,2 ;
insert into casetest select 2,3 ;


select col1, col2,
    case when col1 = col2 then 'first_condition'
         when col1 < col2 then 'second_condition'
         when col1 > col2 then 'third_condition'
    end as test_01,
    case when col1 = 2 and col2 = 3 then 'extra_condition' else 'nothing' end as test_02
from casetest 
order by col2 ;
创建表casetest
(col1 int,
col2 int
) ;
插入案例测试,选择2,1;
插入案例测试,选择2,2;
插入案例测试,选择2,3;
选择col1,col2,
当col1=col2时,则为“第一个条件”
当col1col2时,则为“第三种情况”
作为测试_01结束,
当col1=2和col2=3时,则“额外条件”或“无”结束为测试02
来自案例测试
col2订单;

你能发布一段代码片段吗?当满足条件1时,第2列会发生什么情况?当满足条件2时,第1列会发生什么情况?@PankajGadge我正在尝试插入代码,但我不确定具体如何操作。将在几分钟后重试。@AnkitBajpai根据“其他”条件,任何事情都不应发生在对方身上。由于您试图为两个单独的列设置值,因此需要两个case语句。@MayerFulop没问题。SQL无法计算我在SQL中漏掉逗号的次数。现在,我遇到了另一个问题,与上述问题无关。“无法存储在此列中。精确类型为Int123”让我这样写。我从一个简单的Select语句开始——如果满足条件,我希望结果会有所不同。然后,我想在单独的a列中告诉我是否满足其他标准。我够清楚了吗?