这就是我正在做的事情:
while (@counter < 3 and @newBalance >0)
begin
CASE
when @counter = 1 then ( @monFee1 = @monthlyFee, @newBalance = @newBalance-@fee)
when @counter = 2 then ( @monFee2 = @monthlyFee, @newBalance = @newBalance-@fee)
END
@counter = @counter +1
end
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
关键字"CASE"附近的语法不正确.
不知道为什么.请帮忙!
我的sql中有IF(expr1,expr2,expr3).
如何在MS SQL中完成它?
看起来javascript 开关案例不喜欢正则表达式作为一个案例,因为它适用于静态值,但我无法在case语句中使用正则表达式获得预期的答案.
您是否会确认js解释器的限制并提出解决方法(我的意思是不是if-then块套件)?
谢谢
示例(未给出预期答案,例如'case3'):
<script type="text/javascript">
var testme = "pwd_foo";
var response = false;
var reg = /^pwd.+/;
switch (testme) {
case 'pwd':
response = 'case1';
break;
case reg.test:
response = 'case2';
break;
case /^pwd.+/:
response = 'case3';
break;
default:
response = 'do sthg else';
}
alert('reg test: ' + reg.test(testme)+'\nresponse:' + response);
</script>
Run Code Online (Sandbox Code Playgroud) 我有一个字符串,我想从中提取一个需要在Case语句中使用的字符.事物是Case唯一的Char取值而不是字符串值.那么如何将单个字符串字符转换为char?
我每月都有时间序列数据,我想对每个ID进行求和,按月分组,然后将月份名称作为列而不是行.
+----+------------+-------+-------+
| id | extra_info | month | value |
+----+------------+-------+-------+
| 1 | abc | jan | 10 |
| 1 | abc | feb | 20 |
| 2 | def | jan | 10 |
| 2 | def | feb | 5 |
| 1 | abc | jan | 15 |
| 3 | ghi | mar | 15 |
Run Code Online (Sandbox Code Playgroud)
+----+------------+-----+-----+-----+
| id | extra_info | jan | feb | mar …Run Code Online (Sandbox Code Playgroud) 我正在Arduino上编写代码(非常类似于C,我不知道,或者很少),我对switch/case语句有一点问题.
我需要我的Arduino来做这个或那个取决于电位计的值(0到1023).但是,我不知道如何判断它是"0到200"的情况.例如,我试过了
case 0..250:
blablaSomeCode;
break;
Run Code Online (Sandbox Code Playgroud)
等等......我怎么能这样做?
我真的不想写案例1案例2案例3 ......
我想选择已将某些内容标记为收藏的用户数,如果当前用户已"投票",则返回.我的桌子看起来像这样
CREATE TABLE IF NOT EXISTS `favorites` (
`user` int(11) NOT NULL DEFAULT '0',
`content` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`user`,`content`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
Run Code Online (Sandbox Code Playgroud)
假设我有3行包含
INSERT INTO `favorites` (`user`, `content`) VALUES
(11, 26977),
(22, 26977),
(33, 26977);
Run Code Online (Sandbox Code Playgroud)
用这个
SELECT COUNT(*), CASE
WHEN user='22'
THEN 1
ELSE 0
END as has_voted
FROM favorites WHERE content = '26977'
Run Code Online (Sandbox Code Playgroud)
我希望得到has_voted=1,COUNT(*)=3但是
我得到的has_voted=0和COUNT(*)=3.这是为什么?怎么解决?
我在Verilog有一个大约95个案例的案例结构.
case(address)
5'd0: header_buffer[7:0] <= writedata;
5'd1: header_buffer[15:8] <= writedata;
5'd2: header_buffer[23:16] <= writedata;
5'd3: header_buffer[31:24] <= writedata;
Run Code Online (Sandbox Code Playgroud)
如您所见,有一种非常可预测的模式.有没有更好的方法来编写这个,这样我就不必手动写出所有的情况,以便我可以将它扩展到任意大的大小,如100或200个案例?似乎某种类型的for循环语法非常有用.
我试图一起使用CASE和GROUP BY,仅在它们符合CASE标准时才有条件地过滤结果,如果不匹配,则返回结果,就好像没有指定GROUP BY标准一样。
这是我所拥有的简单模型:
es.id | es.acct_num | p.id | p.name
1001 | 4306-0 | 1569 | The High School
1002 | 4306-0 | 1569 | The High School
665 | 5906-7 | 981 | Rec Center
783 | 5906-7 | 1221 | The Gym
Run Code Online (Sandbox Code Playgroud)
这是我想看到的:
es.id | es.acct_num | p.id | p.name
1001 | 4306-0 | 1569 | The High School
1002 | 4306-0 | 1569 | The High School
0 | 5906-7 | 0 | MULTI-SITE
Run Code Online (Sandbox Code Playgroud)
由于es.acct_num 5906-7 …
我有以下代码:
<?php
echo check('three');
function check($string) {
switch($string) {
case 'one' || 'two' : return 'one or two'; break;
case 'three' || 'four' : return 'three or four'; break;
}
}
Run Code Online (Sandbox Code Playgroud)
目前它输出:
one or two
Run Code Online (Sandbox Code Playgroud)
但显然我希望代码返回three or four.
那么为多个case语句返回相同代码的正确方法是什么?
case ×10
sql ×3
mysql ×2
arduino ×1
c ×1
char ×1
crosstab ×1
delphi ×1
delphi-xe2 ×1
group-by ×1
having ×1
javascript ×1
max ×1
php ×1
pivot ×1
postgresql ×1
regex ×1
robot ×1
select ×1
sql-server ×1
string ×1
syntax ×1
verilog ×1
while-loop ×1