根据列值选择不同的列

时间:2017-02-01 14:03:26

标签: sql sql-server

我有一个包含几列的表格。特别是有两列,Nominal& MktBuyAmt。

我想要做的是,当两列中的两个值相同时,使用Nominal列中的值,但如果两个值不同,则选择MktBuyAmt列中的值。

快速示例

  Nominal    MktBuyAmt
  7          8
  5          5
  3          3

答案

  NewSS
  8
  5
  3

下面是我的尝试(我从这里的示例中复制了),但它返回一条错误消息,指出无效的列名“MktBuyAmt”。 MktBuyAmt下面有一条红线是我有Nominal = MktBuyAmt的那条。

select Id, Name, Nominal, MktButAmt, 
       case when Nominal = MktBuyAmt 
       then Nominal 
       else MktButAmt end NewSS
from tblA

2 个答案:

答案 0 :(得分:2)

 public override bool Equals(object obj) {
   // Easy tests: 
   // 1. If "this" and "obj" are in fact just the same reference?
   // 2. Since `Node` (or Equals) is not sealed, the safiest is to check types 
   if (object.ReferenceEquals(this, obj))
     return true;
   else if (null == obj || other.GetType() != GetType()) 
     return false;

   // Potentially time/resource cosuming (we don't know IInterface implementation)
   return ((Node) obj).myInterface == myInterface;
 }

输出

        LayoutInflater layoutInflater
                = (LayoutInflater)getBaseContext()
                .getSystemService(LAYOUT_INFLATER_SERVICE);
        View popupView = layoutInflater.inflate(R.layout.popup, null);

        final PopupWindow popupWindow = new PopupWindow(popupView, -1, 200, true);
        Button btnDismiss = (Button)popupView.findViewById(R.id.dismiss);

        btnDismiss.setOnClickListener(new Button.OnClickListener(){
            @Override
            public void onClick(View v) {

                // TODO Auto-generated method stub
                popupWindow.dismiss();
            }});

        popupWindow.showAtLocation(popupView, Gravity.TOP, 0, 0);

答案 1 :(得分:1)

我假设您实际上想要获得两列中较大的一列,如果是这种情况,那么您可以使用下面的内容。否则,只需按照评论中的建议选择MktBuyAmt。

declare @t table (nominal int, mktbuyamt int)
insert into @t
values
(7,8),
(8,7),
(3,3)

select
case when nominal >= mktbuyamt then nominal else mktbuyamt end as NewSS
from @t