标签: case

最终的public static int不能在switch语句中使用?

我糊涂了.以下代码有错误("..."代表省略代码):

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语句中使用常量作为例子.我错了吗???

java case switch-statement

3
推荐指数
2
解决办法
1301
查看次数

ORACLE- CASE需要INTO吗?

当我尝试以下内容时:

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正常使用?

sql oracle case pls-00428

3
推荐指数
1
解决办法
2万
查看次数

使用Array的多个变量的Ruby case语句

我想比较一个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)

ruby arrays equals case

3
推荐指数
1
解决办法
3049
查看次数

Mysql使用SELECT CASE的结果存储变量

即时通讯学习如何使用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)

mysql variables select store case

3
推荐指数
1
解决办法
9791
查看次数

使用CASE for WHERE字段IN

以下不是"正确的方法",而是我正在努力实现的目标:

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 case where

3
推荐指数
1
解决办法
593
查看次数

SQL Server 2012 - where子句中的Case语句

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)

sql sql-server case where sql-server-2012

3
推荐指数
3
解决办法
2万
查看次数

为什么这些重复案件?

我正在尝试将用字母写的电话号码转换为真正的数字形式.我在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)

java string case char switch-statement

3
推荐指数
2
解决办法
141
查看次数

选择CASE语句SQL Server 2008 R2

我有一个查询,使用一个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)

sql select case sql-server-2008

3
推荐指数
1
解决办法
8万
查看次数

在案例范围内限制开关情况

我试图在案例交换机中包含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)

为什么编译器会施加这样的限制?为了达到最佳目的?我能克服它吗?

d case

3
推荐指数
1
解决办法
166
查看次数

Oracle条件条件where子句

有没有什么方法可以编写具有以下功能的查询,可以添加where子句作为条件方式,

      select e.emp_id, emp.admin_user from employees e
Run Code Online (Sandbox Code Playgroud)

如果emp.admin!='Y'

然后

使用where子句运行查询

其他

没有where子句的查询运行?

oracle case where oracle11g conditional-statements

3
推荐指数
1
解决办法
1万
查看次数