Tag: case

bash / zsh脚本中“case”语句的奇怪语法是什么原因?

从程序员的angular度来看,shell脚本只是另一种编程语言,需要学习和遵守语言规则。 然而,我不得不承认,这个语法是我所见过的最常用的语言。 shell是否使用了从它下降的旧语言的语法? 语法中是否有特殊的含义/含义? 举个例子,我从SO上的另一篇文章中看到了一小段代码 case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) check_status ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac 看这个,首先我可以看到这个case以esac结尾,这是它的反转forms(就像以fi结尾)。 其次,我明白,每个案件后面都是a ) 。 够公平的,但为什么我需要两个; 在每一个陈述结束? 我也会说,没有伴随(是丑陋的。 我正在寻找关于该语言的历史方面的更多信息,但是由于技术原因,我也是开放的。

MySQLselect与CASE或IF ELSEIF语句? 不知道如何得到结果

我有两张桌子。 一个有制造商的信息,包括他们可以出售的地区。 另一个有他们的产品出售。 我们必须根据地区来限制产品的可视性。 这就好像Netflix在他们的系统中只有在加拿大(2),美国(3)才能看到的video。 我试图做一个查询,告诉我可以根据制造商表中的设置查看产品的位置。 例如,在制造商表中,有两个名为expose_new和expose_used的字段,每个字段的值都是1,2或3,以限制其新video或已用video的位置。 添加video时,不会为其指定“曝光”值,而是根据当前制造商的Expos_new或expose_used值将其添加到索引中时即可完成。 我想要得到的是项目详细信息和计算值,可以根据是新build项目还是已使用项目以及为所有新产品或已使用产品分配给制造商的规则/值。 我需要这个单个数字在每个产品的基础上有条件地显示在列表中。 以下是行不通的,但是你会明白我正在尝试做什么。 我已经用CASE语句和下面的错误IF / ELSEIF语句尝试了这一点。 任何帮助debugging这一点,并指出我在正确的方向将不胜感激。 SELECT t2.company_name, t2.expose_new, // 1,2 or 3 t2.expose_used, // 1,2 or 3 t1.title, t1.seller, t1.status, //can be new or used (SELECT IF(status ='New', (select expose_new from manufacturers where id = t1.seller),1 ) ELSEIF(t1.status ='Used', (select expose_used from manufacturers where id […]

为什么我们需要打破案件陈述?

为什么编译器不会在交换机中的每个代码块之后自动放置break语句? 是因为历史原因吗? 你什么时候需要多个代码块来执行?

GROUP BY + CASE语句

我有一个工作查询是按硬件模型和结果分组数据,但问题是有很多“结果” 。 我试图减less到“如果结果= 0,然后保持为0,否则将其设置为1” 。 这一般工作,但我最终有: day | name | type | case | count ————+—————-+——+——+——- 2013-11-06 | modelA | 1 | 0 | 972 2013-11-06 | modelA | 1 | 1 | 42 2013-11-06 | modelA | 1 | 1 | 2 2013-11-06 | modelA | 1 | 1 | 11 2013-11-06 | modelB […]

SQL Server:CASE WHEN或THEN ELSE END => OR不受支持

CASE语句的WHEN子句中的OR不受支持。 我该怎么做? CASE ebv.db_no WHEN 22978 OR 23218 OR 23219 THEN 'WECS 9500' ELSE 'WECS 9520' END as wecs_system