标签: case

为什么必须要这个`case`?

object Test1 {
    def main(args: Array[String]) {
        val list = List("a", "b")
        list map { x ? println(x) }
        list map { case x ? println(x) }

        val list2 = List(("aa", "11"))
        list2 map {
            case (key, value) ? println("key: "+key+", value: "+value)
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

请注意最后一行,为什么case必须使用关键字,但list map { x ? println(x) }可以删除它吗?

scala case

4
推荐指数
2
解决办法
321
查看次数

C/C++中的案例标签问题

我遇到了这段代码

  #include<stdio.h>
  int main()
  {
      int a=1;
      switch(a)
      {   int b=20;
          case 1: printf("b is %d\n",b);
                  break;
          default:printf("b is %d\n",b);
                  break;
      }
      return 0;
  }
Run Code Online (Sandbox Code Playgroud)

我预计输出为20但有一些垃圾值.将此代码编译为.c文件和.cpp文件时输出是否会不同?

c c++ label case

4
推荐指数
1
解决办法
528
查看次数

T-SQL - 在WHERE子句中使用CASE和参数

我在Sales桌子上运行报告:

SaleId INT | SalesUserID INT | SiteID INT | BrandId INT| SaleDate DATETIME

我有一个噩梦试图做这样的事情了一套可空参数@SalesUserID,@SiteId,@BrandID和两个日期时间PARAMS.

附加点:只有一个过滤器参数将作为非空值传递.

SELECT * from Sales
WHERE
     SaleDate BETWEEN @StartDate AND @EndDate

AND
    SalesUserID IN
(
    Select SalesUserID FROM Sales
    WHERE
        SaleDate BETWEEN @StartDate AND @EndDate

    AND

        CASE
            WHEN @SalesUserId IS NOT NULL THEN SalesUserId = @SalesUserID
            WHEN @SiteId Is Not Null THEN SiteId = @SiteId
            ELSE BrandId = @BrandID
        END

)
Run Code Online (Sandbox Code Playgroud)

我在CASE这里的使用闻起来很糟糕,但我不知道如何纠正它.你能帮忙吗?

谢谢.

5arx

sql sql-server stored-procedures case sql-server-2008

4
推荐指数
2
解决办法
3万
查看次数

计算栏(COALESCE vs CASE vs ISNULL)

我不久前发布了类似的问题,现在我需要更新此代码,我回来问一个后续问题.上一个问题在这里:
基于可空列的计算列

我的数据(Address1, Address2, City, State, Zip, Country)可能包含不完整的信息.即我不能保证除了StateCountry列之外的任何东西都有数据.

我想有一个计算列FullAddress.

以前,我使用过COALESCE,如果填写了所有字段,那么效果很好.现在,随着数据要求的放宽,这已不再是一个选项(因为我们以重复的逗号结尾FullAddress).这是我以前使用的(注意,我只是在这里使用SELECT语句以方便使用 - 一旦我有适用于所有情况的东西,将转换为计算列"alter table add"语句):

SELECT (((((COALESCE([Address1],'')
    + COALESCE(', '+[Address2],''))
    + COALESCE(', '+[City],''))
    + COALESCE(', '+[State],''))
    + COALESCE(', '+[Zip],''))
    + COALESCE(', '+[Country],'')) AS FullAddress
FROM Locations
Run Code Online (Sandbox Code Playgroud)

现在,我已经使用了一个替代方法CASE,但它仍然不适用于边缘情况Address1 is NULL(问题是FullAddress它将具有','作为前两个字符)

SELECT CASE WHEN [Address1] IS NOT NULL THEN [Address1] ELSE '' END
        + CASE WHEN [Address2] IS NOT NULL THEN ', ' …
Run Code Online (Sandbox Code Playgroud)

sql sql-server case coalesce calculated-columns

4
推荐指数
1
解决办法
3300
查看次数

System.Windows.Forms.Keys - 低级还是大写?

我一直在寻找答案,但我似乎找不到任何东西.有谁知道你是否可以确定字母套管Keys

例如:

if (System.Windows.Forms.Keys.A.ToString() == "A")
{
    // Upper or Lower?
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

c# case winforms

4
推荐指数
1
解决办法
1550
查看次数

为什么常见的lisp的case构造总是匹配True(T)?

这是关于Debian挤压的SBCL 1.0.55.我可能错过了一些明显的东西,但我是初学者,所以请耐心等待.

CL-USER> (defparameter x 0)

CL-USER> (case x (t 111) )
111
Run Code Online (Sandbox Code Playgroud)

所以看起来这里的情况是将变量x与真值符号相匹配t.这种情况发生在我尝试过的时候; 这x只是一个例子.我不明白为什么会这样.由于case使用eql了匹配,我试过

CL-USER> (eql x t)
NIL
Run Code Online (Sandbox Code Playgroud)

所以,eql不匹配xt.我错过了什么?提前致谢.

case common-lisp

4
推荐指数
2
解决办法
176
查看次数

Java将方法返回值称为切换案例值

我必须使用一个值,通常通过switch case中的方法返回.

int getVal(){return 121;}

 switch(expr){

    case getVal():
 }
Run Code Online (Sandbox Code Playgroud)

但它给出了编译错误:需要持续表达.

我也试过,

int _val = getVal();

 switch(expr){

    case _val:
 }
Run Code Online (Sandbox Code Playgroud)

有相同的结果.

是否有任何解决方法来实现它.

谢谢,阿米特

java case switch-statement method-call

4
推荐指数
1
解决办法
2670
查看次数

GROUP BY with CASE - tsql

我有一个选择,如下所示:

SELECT 
        ReportingDate
    ,   PortfolioID
    ,   PortfolioNme

    ,   CASE
            WHEN @ReportType = 'GeoCountry' THEN Infoportal.dbo.fn_Generic_ProperCase(Country)
            WHEN @ReportType = 'GeoEquity'  THEN Region
        END                 AS Country

    ,   RANK() OVER (PARTITION BY PortfolioID ORDER BY SUM(Percentage) DESC, CASE WHEN @ReportType = 'GeoCountry' THEN Country WHEN @ReportType = 'GeoEquity' THEN Region END) AS [Rank]
    ,   SUM(Percentage)     AS [Weight]

FROM @Worktable as WT

WHERE WT.IssueType1 <> '010' AND WT.IssueType2 <> '055'

GROUP BY    WT.ReportingDate
        ,   WT.PortfolioID
        ,   WT.PortfolioNme
        ,   CASE
                WHEN @ReportType = 'GeoCountry' THEN …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server group-by case common-table-expression

4
推荐指数
1
解决办法
1万
查看次数

C#List删除Case-Insensitive

我想从列表中删除一个单词.问题是要删除的单词是用户输入,它应该不区分大小写.

我知道如何进行不区分大小写的比较.但这似乎不起作用.

List<string> Words = new List<string>();
Words.Add("Word");
Words.Remove("word", StringComparer.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

提前致谢

c# compare list case

4
推荐指数
1
解决办法
5039
查看次数

有没有办法可以在from子句中放置case语句?

我试图根据某个方面从不同的位置进行选择.可以CASEFROM条款中加上一个陈述吗?

这就是我想要做的

FROM (Case WHEN @location = 'location A' THEN stockA 
WHEN @location = 'location B' then stockB end) ss
Run Code Online (Sandbox Code Playgroud)

如果我没有选择多个地点,StockA就是我想要的.SS是别名.

sql postgresql case

4
推荐指数
1
解决办法
217
查看次数