MySQL服务器版本5.0.45.考虑以下:
( SELECT CASE
WHEN t.group_id = 12 THEN 'yes'
ELSE 'no'
END
FROM sample_table t
WHERE t.user_id = 2
AND t.group_id = 12 ) as foo
Run Code Online (Sandbox Code Playgroud)
这个较大语句的子查询符合我的预期,大部分时间都会产生"是"或"否"字符串值.这不是理想的,但这就是你在别人的代码上工作所得到的!
但是,有时select可以合法地返回一个空集,在这种情况下foo设置为NULL.这实际上并没有破坏应用程序,但它令人恼火.有没有办法可以保证foo总是'yes'或'no',即使表中没有匹配的行?
我在这里阅读了大量的问答,但没有一个符合我想要实现的目标.我甚至不知道这是否可能!任何帮助/建议将不胜感激.
我正在尝试构建一个WHERE基于的条件子句
CustID (int) = @CustomerID
Run Code Online (Sandbox Code Playgroud)
如果@CustomerID = 0那时我想要结果WHERE CustID > 0(即返回所有客户),否则我只想要某些客户CustID = @CustomerID
这可能吗?
我试图case在存储过程中使用该语句,但我得到了"Token unknown".case存储过程不支持?谢谢
我正在尝试检查项目列表是否包含Oracle 10g中case语句的条件部分中的特定数字.我收到了ORA-00936: missing expression错误.我正在尝试做类似以下的事情:
Select case 'some_column_data'
when in (1,2,3) then 'do_something'
else 'do_something_else' end;
Run Code Online (Sandbox Code Playgroud)
那么,有没有办法完成我打算做的事情,或者在不同的when语句中迭代地检查值是否在列表中是唯一的解决方案?
为什么Java中的Switch语句可以包含一个FINAL变量作为CASE?##
在我检查的JDK7中,无法将值重新分配给最终变量,如下所示.但是,为什么最终变量"x"可以包含在一个案例事件的Switch语句中,而最终变量"x"的值是否无法重新分配?
为什么这样做可以尽管Oracle定义Java编译器将最终变量作为初始化值而不是变量名称?http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4
请告诉我这是否是Java编译器的技术错误,或者是否存在异常或特殊用途来检查Switch语句中的最终变量的大小写?
class Example{
public static void main(String args[]){
final int x=100;
//x=200; //error: cannot assign a value to final variable x
//The below piece of code compiles
switch(x){
case 200: System.out.println("200");
case 300: System.out.println("300");
}
}
}
Run Code Online (Sandbox Code Playgroud) SELECT CASE WHEN age IS NULL THEN 'Unspecified'
WHEN age < 18 THEN '<18'
WHEN age >= 18 AND age <= 24 THEN '18-24'
WHEN age >= 25 AND age <= 30 THEN '25-30'
WHEN age >= 31 AND age <= 40 THEN '31-40'
WHEN age > 40 THEN '>40'
END AS ageband,
COUNT(*)
FROM (SELECT age
FROM table) t
GROUP BY ageband
Run Code Online (Sandbox Code Playgroud)
这是我的查询.这些是结果:

但是,如果table.age在一个类别中没有至少1个年龄,那么它将在结果中忽略该情况.像这样:

这个数据集没有任何年龄<18岁的记录.所以ageband"<18"没有显示出来.我怎样才能使它显示并返回值0 ??
我需要在存储过程中按功能排序.将值发布到Web服务,并根据该值,我必须以某种方式对结果进行排序,即
当ColName按ColName发布时ColName2按ColName2发布订单时
我正在研究使用Case但我收到一个错误:
Incorrect syntax near '@version'
ORDER BY CASE
WHEN @OrderBy ='Seller (code)' THEN A_SNO
WHEN @OrderBy ='Lot' THEN A_LOTNO
WHEN @OrderBy ='Ring Type' THEN RN_NUM
WHEN @OrderBy ='Aim Error Code' THEN AimRejectionCode
ELSE A_SNO END
DECLARE @version varchar(50)
SET @version = (SELECT DBVERSION FROM MSYSCFG)
PRINT 'New Version = ' + @version
Run Code Online (Sandbox Code Playgroud)
对不起,我是新手,并使用sql server 2008.任何帮助赞赏UPDATE:提供额外的代码.当我遗漏最后3行时,我得到一个错误
Incorrect synatx near END
Run Code Online (Sandbox Code Playgroud)
更新2:我已将ORDER BY更改为以下内容:
ORDER BY
CASE @OrderBy
WHEN @OrderBy = 'Seller (code)' THEN A_SNO
WHEN @OrderBy = 'Lot' THEN A_LOTNO …Run Code Online (Sandbox Code Playgroud) 我有这张桌子:
CREATE TABLE IF NOT EXISTS `my_table` (
`A` int(11) NOT NULL,
`B` int(11) NOT NULL,
`C` varchar(50) NOT NULL,
`D` varchar(30) NOT NULL,
PRIMARY KEY (`A`,`B`,`C`)
)
Run Code Online (Sandbox Code Playgroud)
我想在一个查询中更新几个条目.我试过这个:
UPDATE my_table
SET D = CASE
WHEN (A = 6 AND B = 1 AND C = 'red') THEN '1#2#3#5#4'
WHEN (A = 8 AND B = 1 AND C = 'green') THEN '5#6#7#8#9'
END
Run Code Online (Sandbox Code Playgroud)
但是此查询会更新表中的所有条目.它完全更新了我想要更新的两个条目的'D'的值,但它也删除了其他条目的"D"值,我希望它们保留其先前的值.
我对Erlang很新.我试图找出列表索引是否超出范围(在尝试之前)所以我想用类似的东西做一个if子句
if lists:flatlength(A) < DestinationIndex ....
Run Code Online (Sandbox Code Playgroud)
我发现那些功能结果不能用于防护,所以我使用了case.这导致嵌套的case语句
case Destination < 1 of
true -> {ok,NumberOfJumps+1};
false ->
case lists:flatlength(A) < Destination of
true ->
doSomething;
false ->
case lists:member(Destination,VisitedIndices) of
true -> doSomething;
false ->
doSomethingElse
end
end
end.
Run Code Online (Sandbox Code Playgroud)
我发现这在可读性和代码风格方面很糟糕.这是你如何在erlang中做这样的事情,还是有更优雅的方式来做到这一点?
提前致谢
我想执行以下语句.是否可以使用CASE选择要更新的列?
UPDATE TABVAR CASE
WHEN M BETWEEN 0 AND 6 THEN SET M0_TO_6 = M
WHEN M BETWEEN 7 AND 18 THEN SET M7_TO_18 = M
WHEN M BETWEEN 19 AND 54 THEN SET M19_TO_54 = M
WHEN M > 54 THEN SET MABOVE54 = M
END
Run Code Online (Sandbox Code Playgroud) case ×10
sql ×6
mysql ×3
if-statement ×2
sql-server ×2
sql-update ×2
conditional ×1
erlang ×1
final ×1
firebird ×1
flow-control ×1
java ×1
null ×1
oracle ×1
sql-order-by ×1
variables ×1
where ×1