我正在使用以下用于选择语句的情况.应用CASE的列具有True,False和Null值.我试图为False和Null显示True for True和False.但它给我一个错误信息说:
"将varchar值'Null'转换为数据类型位时转换失败."
这是我的查询:
case
when prog.has_post_calc_screen = ''True'' then ''True''
when prog.has_post_calc_screen = ''False''then ''False''
when prog.has_post_calc_screen = ''Null'' then ''False''
End as Referal_ID,
Run Code Online (Sandbox Code Playgroud)
我给的输入是:
'1','ALL', 'ALL'
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个SQL Select语句,以根据通过前端的用户输入返回记录.我想写这样的Select语句:
SELECT somefields
FROM sometable
WHERE CASE variable
WHEN 'blank' THEN field IS NULL
ELSE field = field
END
Run Code Online (Sandbox Code Playgroud)
基本上我要么过滤一列来查找NULL值,要么忽略过滤器并根据变量的值返回所有值.我知道CASE语句的结果不可执行但我怎么能这样做?
我需要在数据库表订购结果ChargeOperations在我自己的方向通过typeId.SQL请求是这样的:
SELECT * FROM ChargeOperations co
LEFT JOIN ShadowChargeOperations sco ON sco.ChargeOperationId=co.Id
-- just exclude some extra data.
WHERE sco.Id IS NULL
ORDER BY
CASE co.TypeId
WHEN 1 THEN 3 -- this is my order, which is different from id of type and can change
WHEN 2 THEN 1
WHEN 3 THEN 2
ELSE 4
END,
co.TypeId,
co.CalculationAmount
Run Code Online (Sandbox Code Playgroud)
那么,请你给我一个例子,说明如何创建这种结构.
CASE co.TypeId
WHEN 1 THEN 3 -- this is my order, which is different from …Run Code Online (Sandbox Code Playgroud) object Prop {
def simplify(prop : Prop) : Prop = {
prop match {
case Not(Or(a,b)) => simplify(And(Not(a),Not(b)))
case Not(And(a,b)) => simplify(Or(Not(a),Not(b)))
case Not(Not(a)) => simplify(a)
case _ => {
if (simplify(prop) == prop) prop
else prop
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我很确定我的'默认'案例导致了无限循环.我在所有情况下都使用递归.这意味着,但是,只有简化了Prop.一旦道具不能简化,就应该归还整个东西.
我不知道如何测试任何进一步的简化.(我不允许使用其他库,如freenodes #scala频道所示).
有人可以解释它是否是导致循环的"case _",以及如何解决它?如何在不进行循环的情况下测试可能的简化?
提前致谢!
以下是我的查询.这是正确的吗?
SQL> select case when value in (1000) then null
2 when user in ('ABC') then user
3 when area in ('DENVER') then
4 if value = 2000 then 'Service1'
5 else value = 3000 then 'Service2'
6 end if
7 else null
8 end as num_code from service_usoc_ref;
if prin = 2000 then 'Omaha'
*
ERROR at line 4:
ORA-00905: missing keyword
Run Code Online (Sandbox Code Playgroud)
请帮我.
我需要编写一个将返回的case语句
“1 of 3” if someone voted in one of three elections,
“2 of 3” if someone voted in two of three elections,
“3 of 3” if someone voted in three of three elections,
Run Code Online (Sandbox Code Playgroud)
问题是有些值是varchar而有些是null,我无法将它们添加到一起.这是我的想法,但我不能让它工作.
select
id,
CASE
WHEN race1 + race2 + race3 = 0 then '0-3'
WHEN race1 + race2 + race3 = 1 then '1-3'
WHEN race1 + race2 + race3 = 2 then '2-3'
WHEN race1 + race2 + race3 = 3 then '3-3'
WHEN race1 …Run Code Online (Sandbox Code Playgroud) 我使用Enterprise Architect来创建一个简单的类图.我无法弄清楚怎么做才能让它显示出1到1等关系...
看起来似乎很简单,但这个程序根本不是用户友好的.
我有一个查询,如果一个名为OrderBy的标志是1,那么它是一个日历事件,我需要检查两个日期时间字段之间的范围.而所有其他类型我们只是检查你正在查看的那一天.我研究if语句并看到很多帖子,其中建议使用一个案例,所以我试着将它实现到我的查询中.我的查询需要在哪里的条件.我知道我有语法问题,这就是为什么我在这里希望有人可以指出正确的方法来做到这一点.
感谢您的时间
我的查询目前
SELECT activities.*,
activitytypes.orderby
FROM activities
LEFT OUTER JOIN activitytypes
ON activities.typeid = activitytypes.typeid
WHERE activities.userid = 86
AND activities.typeid NOT IN ( 5,
10,
11,
12,
19 )
AND
CASE
WHEN activities.orderby = 1 THEN activities.starttime >= '2013-08-26 04:00:00'
AND activities.endtime <= '2013-08-27 04:00:00'
ELSE activities.activitydate = '2013-08-26'
order BY activitytypes.orderby,
activities.starttime
Run Code Online (Sandbox Code Playgroud) 我是Java的初学者,并且在此方面进行了一些完善。它应该是一个简单的计算器。我知道可能有更好/更有效的方法来执行此操作,但这不是我想要的。使用a switch选择要运行的操作时,我遇到了一个小问题。基本上,发生的事情是,每次我运行代码时,它都会选择要运行的正确代码(如果String输入的是“ +”,它将添加doubles),之后似乎总是运行该default代码(显示“ Command”)未识别。”)。如果我删除default代码完美运行(当然,这样,如果用户输入未知命令,它将给出一个错误),我可以轻松做到这一点,但是我真正想要的是拥有默认代码并知道为什么不这样做的方法不是这样的 请帮忙。谢谢。
import java.util.Scanner;
public class App {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
double v1 = scan.nextDouble();
double v2;
double v3;
scan.nextLine();
while(1<2){
String op = scan.nextLine();
switch(op){
case "+":
v2 = scan.nextDouble();
v1 = v2 + v1;
System.out.println("="+v1);
break;
case "-":
v2 = scan.nextDouble();
v1 = v2 - v1;
System.out.println("="+v1);
break;
case "*":
v2 = scan.nextDouble();
v1 = v2 * v1;
System.out.println("="+v1); …Run Code Online (Sandbox Code Playgroud) 我有以下SQL查询:
SELECT w.id, w.name, m.subject, m.id
FROM users AS w, i_c AS c,
(SELECT _id, u_id, subject FROM i_m WHERE (_id, tmstmp) IN
(SELECT _id, max(tmstmp) FROM i_m GROUP BY _id)) m
WHERE (c.uid_1 = '2' OR c.uid_2 = '2') AND
CASE WHEN c.uid_1 = '2' THEN w.id = c.uid_2
WHEN c.uid_2 = '2' THEN w.id = c.uid_1 END
AND (c.id = m.id) ORDER BY m.tmstmp DESC
Run Code Online (Sandbox Code Playgroud)
它在我的第一台服务器上工作正常但在第二台服务器上给了我
Unexpected Token. (near "c" at position 280)
Run Code Online (Sandbox Code Playgroud)
看了一些类似的问题,但仍未找到解决方案.似乎问题是CASE. …
case ×10
sql ×4
mysql ×2
where ×2
conditional ×1
default ×1
diagram ×1
hibernate ×1
if-statement ×1
java ×1
loops ×1
nhibernate ×1
null ×1
oracle ×1
queryover ×1
relationship ×1
scala ×1
sql-order-by ×1
string ×1
uml ×1