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) }可以删除它吗?
我遇到了这段代码
#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文件时输出是否会不同?
我在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
我不久前发布了类似的问题,现在我需要更新此代码,我回来问一个后续问题.上一个问题在这里:
基于可空列的计算列
我的数据(Address1, Address2, City, State, Zip, Country)可能包含不完整的信息.即我不能保证除了State和Country列之外的任何东西都有数据.
我想有一个计算列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) 我一直在寻找答案,但我似乎找不到任何东西.有谁知道你是否可以确定字母套管Keys?
例如:
if (System.Windows.Forms.Keys.A.ToString() == "A")
{
// Upper or Lower?
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
这是关于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不匹配x和t.我错过了什么?提前致谢.
我必须使用一个值,通常通过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)
有相同的结果.
是否有任何解决方法来实现它.
谢谢,阿米特
我有一个选择,如下所示:
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) 我想从列表中删除一个单词.问题是要删除的单词是用户输入,它应该不区分大小写.
我知道如何进行不区分大小写的比较.但这似乎不起作用.
List<string> Words = new List<string>();
Words.Add("Word");
Words.Remove("word", StringComparer.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
提前致谢
我试图根据某个方面从不同的位置进行选择.可以CASE在FROM条款中加上一个陈述吗?
这就是我想要做的
FROM (Case WHEN @location = 'location A' THEN stockA
WHEN @location = 'location B' then stockB end) ss
Run Code Online (Sandbox Code Playgroud)
如果我没有选择多个地点,StockA就是我想要的.SS是别名.
case ×10
sql ×3
sql-server ×3
c# ×2
c ×1
c++ ×1
coalesce ×1
common-lisp ×1
compare ×1
group-by ×1
java ×1
label ×1
list ×1
method-call ×1
postgresql ×1
scala ×1
t-sql ×1
winforms ×1