假设我们有以下情况:
Jen Ninja(一个名字很棒的开发人员)喜欢看下面的列表视图过滤器:
所有打开的案例分配给Jen Ninja,状态为Active
Jen Ninja被分配了一堆案例(其中一些是bug,其中一些是功能).
Jen看着她的过滤列表并看到它们.没问题.
Jen Ninja敲打了她的所有案件,然后他们被分配到各种QA人员.
在发布前两天,Jen的老板在这里问道:"你工作的所有东西是什么?"
Jen如何更改她的过滤器以便她可以放心地回答这个问题?
我正在尝试在我的SQL查询中使用CASE语句,并且它的工作方式与我认为的方式不同.
基本上,我需要实现三个场景,并使用日期字段,例如我有以下数据:
id | date_activated
1 | 2011-10-10 07:00:06
2 | 2011-03-12 10:00:00
3 | 2011-11-27 18:10:36
4 | 2010-01-25 14:30:43
5 | 0000-00-00 00:00:00
Run Code Online (Sandbox Code Playgroud)
使用以下SQL:
select id,
case date_activated
when date_activated > '2011-11-23 18:30:00' then 'after'
when date_activated > '2010-01-20 00:00:00' then 'before'
else 'not yet'
end as date_note
from table1
Run Code Online (Sandbox Code Playgroud)
应该带出:
id | date_activated | date_note
1 | 2011-10-10 07:00:06 | before
2 | 2011-03-12 10:00:00 | before
3 | 2011-11-27 18:10:36 | after
4 | 2010-01-25 14:30:43 …Run Code Online (Sandbox Code Playgroud) 如果Make不等于'0',我想只使用where条件.这就是我尝试过的.这是存储过程的片段.查询仅在Make不为0时有效.当它为'0'时失败.
这不是空检查.@Make是一个varchar.如何实现它要么是'0'要么是一个字符串,例如'mazda'.
select *
from In_Inventory
where
and Make = case
when @Make != '0'
Then @Make
end
Run Code Online (Sandbox Code Playgroud) 我无法找到以下解释.我已经制作了这个测试脚本以解决我之前的问题.
xquery version "3.0" ;
declare default function namespace 'local' ;
declare function local:is-img-only( $element as element() ) as xs:boolean {
($element/child::*[1] instance of element(img))
and (fn:not($element/child::*[2]))
and (fn:normalize-space($element) = '')
} ;
let $in-xml := <myxml>
<p id="1">
<img id="1"/>
</p>
<p id="2">
<img id="1"/>
hello
</p>
<p id="3">
<img id="1"/>
</p>
<p id="4">
<blockquote>hello</blockquote>
<img id="1"/>
</p>
<p id="5">
<img id="1"/>
<img id="2"/>
</p>
</myxml>
Run Code Online (Sandbox Code Playgroud)
然后,使用以下内容if then else:
for $p in $in-xml/p
return if …Run Code Online (Sandbox Code Playgroud) 对于switch语句,是否可以在switch语句中更改switch的值,以便它可以跳转到不同的情况?例如:
int w = 0;
switch(w)
{
case 1:
doSomething();
w = 3;
case 2:
doSomething();
break;
case 3:
doSomething();
break;
}
Run Code Online (Sandbox Code Playgroud)
基本上我要问的是,如果我没有为一个案例放置一个break语句并且我在同一个案例中更改了switch的值,那么代码会执行这两种情况吗?
我想知道是否使用CASE ... WHEN ...那么MySQL查询中的表达式
会对性能产生负面影响吗?
而不是使用CASE表达式(例如在你的UPDATE查询中)
你总是有可能在你的程序
中使用php,python,perl,java等编写if语句来选择要发送的查询(例如伪代码) ):
prepareStatement(
"UPDATE t1 SET c1=c1+1, msg=CASE (@v:=?) WHEN '' THEN msg ELSE @v END"
);
setStatementParameter(1, message);
Run Code Online (Sandbox Code Playgroud)
或者是:
if (message == "") {
prepareStatement("UPDATE t1 SET c1=c1+1");
} else {
prepareStatement("UPDATE t1 SET c1=c1+1, msg=?");
setStatementParameter(1, message);
}
Run Code Online (Sandbox Code Playgroud)
(这里需要c1只是为了表明两种情况都会发生的事情)
采取什么方式有更好的表现?
性能损失是多少?
我试图做的是使查询考虑或不是日期时间值,所以我不必在存储过程中这样做
if @considerDate =1
begin
select * from table
where dateCol = @date
end
else
begin
select * from table
end
Run Code Online (Sandbox Code Playgroud)
我想做一些想法
select * from table
where dateCol = ( case
when @date is not null
then @date
)
Run Code Online (Sandbox Code Playgroud)
在单个查询中
我有一个如下所示的switch语句:
switch(task)
{
case 1:
print();
break;
case 2:
save();
break;
case 3:
sendmail();
break;
}
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来执行所有情况,这意味着如果任务是(全部)我想打印,保存和发送邮件.是否可以在给定的情况下使用一些修改我知道,我可以如下:
case All:
print();
save();
sendmail();
break;
Run Code Online (Sandbox Code Playgroud)
但正如我所说,我想知道,如果在switch语句中有一种方法可以执行所有情况.提前致谢
在 C 语言中,不能在“case”语句中声明任何变量。
switch ( i ){
case 1:
int a = 1; //error!
break;
}
Run Code Online (Sandbox Code Playgroud)
但是,当您与花括号一起使用时,您可以。
switch ( i ){
case 1:
{// create another scope.
int a = 1; //this is OK.
}
break;
}
Run Code Online (Sandbox Code Playgroud)
在 Javascript 情况下,我可以在 case 语句中直接使用 var 吗?
switch ( i ){
case 1:
var a = 1
break
}
Run Code Online (Sandbox Code Playgroud)
似乎没有错误,但我不确定这在语法上是否正确。
当你使用Ada案例陈述时,每个案例都会自动中断.在C(或其他语言)中,不会自动执行此中断,并且执行真正的中断后的所有情况.是否也可以在Ada中使用此行为或解决方法?
case ×10
sql ×4
break ×2
mysql ×2
sql-server ×2
ada ×1
c# ×1
declare ×1
filter ×1
filtering ×1
flwor ×1
fogbugz ×1
if-statement ×1
javascript ×1
loops ×1
performance ×1
select ×1
variables ×1
xquery ×1