我糊涂了.以下代码有错误("..."代表省略代码):
int byteOrder = ...;
switch (byteOrder)
{
case HDF5Constants.H5T_ORDER_BE:
return ByteOrder.BIG_ENDIAN;
...
}
Run Code Online (Sandbox Code Playgroud)
错误在case语句上,Eclipse抱怨"case表达式必须是常量表达式".我在源文件中查找了这个,它有很长的列表,如下所示:
final public static int H5T_ORDER_BE = H5.J2C( JH5T_ORDER_BE );
Run Code Online (Sandbox Code Playgroud)
我以为你可以final public static int在switch语句中使用常量作为例子.我错了吗???
当我尝试以下内容时:
declare var_type VARCHAR2(10);
begin
var_type := 'B';
select case var_type
when 'B' then 'Beans'
when 'L' then 'Legumes'
end
from tableOfBeans ;
end;
Run Code Online (Sandbox Code Playgroud)
我收到一个错误说
ORA-06550:第4行,第1列:
PLS-00428:在此SELECT语句中需要INTO子句
在位置#处检测到错误:62
但是,当我不使用var_type但是使用'B'作为条件时,它可以很好地工作.任何人都可以告诉我为什么会发生这种情况,我该如何解决它以便我可以var_type正常使用?
我想比较一个case语句的多个变量,并且我正在考虑重写case equals operator(===)for Array是最好的方法.这是最好的方法吗?
这是一个示例用例:
def deposit_apr deposit,apr
# deposit: can be nil or 2 length Array of [nil or Float, String]
# apr: can be nil or Float
case [deposit,apr]
when [[Float,String],Float]
puts "#{deposit[0]} #{deposit[1]}, #{apr*100.0}% APR"
when [[nil,String],Float]
puts "#{apr*100.0}% APR on deposits greater than 100 #{deposit[1]}"
when [[Float,String],nil]
puts "#{deposit[0]} #{deposit[1]}"
else
puts 'N/A'
end
end
Run Code Online (Sandbox Code Playgroud)
唯一的问题是Array case equals运算符不适用大小等于Array的元素.
ruby-1.9.2-p0 > deposit_apr([656.00,'rupees'],0.065)
N/A
Run Code Online (Sandbox Code Playgroud)
如果我覆盖它,但我不确定如果我做了什么我会破坏:
class Array
def ===(other)
result = true
self.zip(other) {|bp,ap| result &&= bp === …Run Code Online (Sandbox Code Playgroud) 即时通讯学习如何使用SELECT CASE,但我不太了解,这里是代码:
SET @vgls=1;
SET @lgls=1;
SET @st=SELECT CASE
WHEN @vgls=@lgls THEN "emp"
WHEN @vgls>@lgls THEN "loc"
WHEN @vgls<@lgls THEN "vis" END;
SELECT @st;
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to you MySQL server version for the right syntax to use near 'SELECT CASE
WHEN @vgls=@lgls THEN "emp"
WHEN @vgls>@lgls THEN "loc"
WHEN @vg' at line 1
Run Code Online (Sandbox Code Playgroud) 以下不是"正确的方法",而是我正在努力实现的目标:
SELECT
[...]
FROM
[...]
WHERE condition1
AND condition2
AND field IN CASE (@type)
WHEN 1 THEN (SELECT subquery #1)
WHEN 2 THEN (SELECT subquery #2)
WHEN 3 THEN (SELECT subquery #3)
END
Run Code Online (Sandbox Code Playgroud)
意思是,我想为参数的每个不同值提供不同的子查询@type.什么是一个好方法呢?
SQL不是我的强项,但我无法弄清楚为什么这不起作用.我只想根据值运行不同的AND语句.具体来说,如果foo = 0,我想更改dateDiff函数中的datePart
SELECT foo,
bar,
test
FROM table
WHERE bar = 1,
CASE WHEN foo = 0
AND dateDiff(dd, getDate(), 2 ) < test
ELSE
AND dateDiff(hh, getDate(), 2 ) < test
END
Run Code Online (Sandbox Code Playgroud) 我正在尝试将用字母写的电话号码转换为真正的数字形式.我在for循环中有这个switch语句,它查看字符串的每个字符,但是eclipse说我有重复的情况('G'|'H'|'我','J'|'K'|' L','M'|'N'|'O')我不明白为什么?
switch(parts[1].charAt(i)){
case 'A' | 'B' | 'C' : number.concat("2"); break;
case 'D' | 'E' | 'F' : number.concat("3"); break;
case 'G' | 'H' | 'I' : number.concat("4"); break;
case 'J' | 'K' | 'L' : number.concat("5"); break;
case 'M' | 'N' | 'O' : number.concat("6"); break;
case 'P' | 'Q' | 'R' | 'S' : number.concat("7"); break;
case 'T' | 'U' | 'V' : number.concat("8"); break;
case 'W' | 'X' | 'Y' | 'Z' : number.concat("9"); break;
}
Run Code Online (Sandbox Code Playgroud) 我有一个查询,使用一个CASE语句来记分帐户.查询查找矢量形式的值.因此,例如,如果我是一名患者,我可以拥有多个诊断代码,但它们不会存储为列值,而是存储在另一行中,如下所示:
VISIT_ID | CLASFCD
123 | 196.0
123 | 197.0
123 | 198.0
321 | 199.0
321 | 650.9
222 | 111
555 | ...
...
Run Code Online (Sandbox Code Playgroud)
我的查询使用了一个Case Statment,如下所示:
, CASE
WHEN DV.ClasfCd IN (
'196.0','196.1','196.2','196.3','196.5','196.6','196.8','196.9',
'197.0','197.1','197.2','197.3','197.4','197.5','197.6','197.7',
'197.8','198.2','198.3','198.4','198.5','199.1','209.7'
)
THEN 6
ELSE 0
END AS PRIN_DX_CD_5
Run Code Online (Sandbox Code Playgroud)
我为5组不同的代码执行此操作.发生的事情是,如果其中一个组符合条件,结果将返回另一行而不是同一行.以下是我要回复的数据示例:
VISIT_ID | CC GROUP 1 | CC GROUP 2 | CC GROUP 3 | CC GROUP 4 | CC GROUP 5 | TOTAL
123 | 1 | 0 | 0 | 0 …Run Code Online (Sandbox Code Playgroud) 我试图在案例交换机中包含UTF-8标识符,但是我收到此错误:
错误:有399个案例,案件范围超过256个案件
D代码:
switch(value)
{
case 'a': .. case 'z':
case 'A': .. case 'Z':
case 0xC0: .. case 0x24F:
Run Code Online (Sandbox Code Playgroud)
为什么编译器会施加这样的限制?为了达到最佳目的?我能克服它吗?
有没有什么方法可以编写具有以下功能的查询,可以添加where子句作为条件方式,
select e.emp_id, emp.admin_user from employees e
Run Code Online (Sandbox Code Playgroud)
如果emp.admin!='Y'
然后
使用where子句运行查询
其他
没有where子句的查询运行?