我想根据位字段是真还是假来有条件地选择一些东西.这是我最初尝试的语法:
CASE WHEN isSoon THEN 'Soon' ELSE 'Not so soon' END As HowSoon
Run Code Online (Sandbox Code Playgroud)
这对我来说很有意义,因为"WHEN"后面必须是一个布尔表达式isSoon,因为它是一个小字段.但是,这不起作用.我最终要做的是:
CASE WHEN isSoon = 1 THEN 'Soon' ELSE 'Not so soon' END As HowSoon
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎是多余的......这就像if(isSoon == True)用编程语言编写而不是更直观,if(isSoon)而且反对谷物.为什么SQL设置如此?是因为位字段不是真正的布尔值吗?
我正在努力学习案例,因为我正在编写一个功能齐全的脚本.
我从下面开始
#!/bin/sh
case $@ in
-h|--help)
echo "You have selected Help"
;;
-B|-b)
echo "You have selected B"
;;
-C|-c)
echo "You have selected C"
;;
*)
echo "Valid Choices are A,B,C"
exit 1
;;
esac
Run Code Online (Sandbox Code Playgroud)
我想使用以下两个选项:
./getopts.sh -h -c
Run Code Online (Sandbox Code Playgroud)
但我得到这个结果有效选择是A,B,C
请你帮帮忙,让我知道我做错了什么?
我想构建一个脚本,如果你输入一个选项会做一些事情但是如果你输入多个就做多件事.
另外,我将如何解析$ 1这个脚本作为surley哪个选项我先输入(-h)将是1美元?
谢谢!
我需要在我的oracle表中更新新创建的列.为此,我需要使用行中的现有值来决定如何填充此列,我收到错误:
java.lang.NullPointerException -> See Debug Output for details
Run Code Online (Sandbox Code Playgroud)
这是我的查询:
UPDATE
SCHEMA_NAME.TABLE_NAME
SET
OCO= IF CO= 'Y' AND COM='Y' THEN
{
'Y'
} ELSE
{
'N'
}
END IF;
Run Code Online (Sandbox Code Playgroud)
关于语法的任何建议?
如何在字符串中交换/切换字符的大小写,例如:
$str = "Hello, My Name is Tom";
Run Code Online (Sandbox Code Playgroud)
运行代码后,我得到一个这样的结果:
$newstr = "hELLO, mY nAME Is tOM";
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
有没有人知道这个嵌套的select语句有什么问题?它抱怨失踪)但我无法理解为什么它不起作用(我已经把声明的其他部分留下了)
Select
(CASE WHEN REQUESTS.grade_id = 1 THEN
(CASE WHEN ((date_completed-date_submitted)*24*60)<=30 THEN 'Yes'
ELSE 'No'
END)
ELSE CASE WHEN REQUESTS.grade_id = 2 THEN
(CASE ((date_completed-date_submitted)*24*60) <=120 THEN 'Yes'
ELSE 'No'
END)
ELSE CASE WHEN REQUESTS.grade_id = 3 THEN
(CASE ((date_completed-date_submitted)*24*60)<=14400 THEN 'Yes'
ELSE 'No'
END)
END)in_SLA
Run Code Online (Sandbox Code Playgroud)
如果我这样做
Select
(CASE WHEN REQUESTS.grade_id = 1 THEN
(CASE WHEN ((date_completed-date_submitted)*24*60)<=30 THEN 'Yes'
ELSE 'No'
END)
END) in_sla
Run Code Online (Sandbox Code Playgroud)
它工作正常!
任何帮助深表感谢
中号
对不起,我错过了嵌套案件中的呐喊
我正在尝试创建一个匹配查询,从两个单词之间的字符串中选择文本.我似乎无法弄清楚如何使搜索大小写不敏感.例如,考虑文本:
contents = "cat
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec blandit feugiat mi, eu lacinia quam tincidunt eu. Donec eleifend adipiscing neque, in porta dolor vestibulum at. Curabitur id elit vitae nunc feugiat varius. Maecenas euismod euismod mi, eu blandit lectus.
dog"
Run Code Online (Sandbox Code Playgroud)
ruby代码返回我的单词cat和dog之间的拉丁代码
contents.match(/cat(.*)dog/m)[1].strip
Run Code Online (Sandbox Code Playgroud)
目前,我的"匹配"查询仅在猫和狗是小写的情况下才有效,但如果猫和狗是大写或第一个字母是大写,我需要照顾.
不太确定/ i操作符的位置.
我有一个SQL查询,我使用Oracle CASE来比较日期列是否小于或大于当前日期.但是如何在CASE-statement中使用该GROUP BY-statement?我想在每种情况下统计记录.
例如
select
(case
when exp_date > sysdate then 1
when exp_date <= sysdate then 2
else 3
end) expired, count(*)
from mytable
group by expired
Run Code Online (Sandbox Code Playgroud)
但是我在尝试时遇到错误:ORA-00904.有什么建议?
(case [dbo].[YearsInService]([DateEngaged],getdate())
when (0) then (0)
when (1) then (4)
when (2) then (8)
when (3) then (12)
when (4) then (32)
when (5) then (40)
when (6) then (48)
when (7) then (56)
when (8) then (104)
when (9) then (117)
when (10) then (150) else (-1) end)
Run Code Online (Sandbox Code Playgroud)
现在在我的最后一行,我怎么能说10和以上应该返回150?
我正在尝试在Cypher中实现逻辑,根据特定条件(CASEStatement),我会创建一些节点和关系; 代码如下
MATCH (g:Game)-[:PLAYER]->(u:User)-[r1:AT]->(b1:Block)-[:NEXT]->(b2:Block)
WHERE g.game_id='G222' and u.email_id = 'xyz@example.com' and b1.block_id='16'
SET r1.status='Skipped', r1.enddate=20141225
WITH u, b2,b1, g, r1
SET b1.test = CASE b2.fork
WHEN 'y' THEN
MERGE (u)-[r2:STAGE {startdate:20141225, enddate:'99999999', status:'InProgress'}]->(b2 {fork:'fail'}) RETURN 1
ELSE
MERGE (u)-[r2:STAGE {startdate:20141225, enddate:'99999999', status:'InProgress'}]->(b2) RETURN 2
END
WITH u, g
MATCH (u)-[:TIME]->(h:Time)<-[:TIME]-(g)
SET h.after = 0
SET h.before = h.before + 1
Run Code Online (Sandbox Code Playgroud)
在此查询中有一条merge语句WHEN 'y' THEN,此查询会引发错误:
输入']'无效:预期的空格或关系模式(第7行,第82列)"MERGE(u) - [r2:STAGE {startdate:20141225,enddate:'99999999',status:'InProgress'}] - >( b2 {fork:'fail'})返回1"
基本上我正在尝试创建一个基于属性的关系,即MERGE在一个 …
我想通过匹配变量中存储的输入来实现匹配/大小写。预期的逻辑应该是这样的:
match x:
case y:
print(...)
case z:
print(...)
Run Code Online (Sandbox Code Playgroud)
事实证明这个方法行不通。
它会导致此错误:“仅在最后一个 case 语句中才允许不可反驳的模式”,
我相信会发生这种情况,因为不知何故,第一个 case 旁边的变量被分配给下一个匹配的变量的值:如果我去调试,通过在“case y”行中,y 的值更改为 x 中存储的值。
但是,如果一切都属于一个类,则不会发生这种情况,如下所示:
class Vars:
x = int(input())
y = int(input())
z = int(input())
match Vars.x:
case Vars.y:
print("something")
case Vars.z:
print("anything")
Run Code Online (Sandbox Code Playgroud)
这种方法不会导致任何错误。
这是为什么?我的意思是,是什么让类变量成为可反驳的模式?