问题标签 [case-statement]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - What is the Fastest Way to Check for a Keyword in a List of Keywords in Delphi?
I have a small list of keywords. What I'd really like to do is akin to:
Unfortunately the CASE statement can't be used like that for strings.
I could use the straight IF THEN ELSE IF construct, e.g.:
but I've heard this is relatively inefficient.
What I had been doing instead is:
This, of course is not the best programming style, but it works fine for me and up to now didn't make a difference.
So what is the best way to rewrite this in Delphi so that it is both simple, understandable but also fast?
(For reference, I am using Delphi 2009 with Unicode strings.)
Followup:
Toby recommended I simply use the If Then Else construct. Looking back at my examples that used a CASE statement, I can see how that is a viable answer. Unfortunately, my inclusion of the CASE inadvertently hid my real question.
I actually don't care which keyword it is. That is just a bonus if the particular method can identify it like the POS method can. What I need is to know whether or not the keyword is in the set of keywords.
So really I want to know if there is anything better than:
The If Then Else equivalent does not seem better in this case being:
In Barry's comment to Kornel's question, he mentions the TDictionary Generic. I've not yet picked up on the new Generic collections and it looks like I should delve into them. My question here would be whether they are built for efficiency and how would using TDictionary compare in looks and in speed to the above two lines?
In later profiling, I have found that the concatenation of strings as in: (' ' + MyKeyword + ' ') is VERY expensive time-wise and should be avoided whenever possible. Almost any other solution is better than doing this.
bash - 案例语句评估为字符串
我发现了函数式编程错误,所以自然对我来说没有什么是足够好的了。;)
因此,在 bash 中可以这样写:
但我害怕错别字,所以我宁愿写:
第二种形式是无效的,因为 case 评估为最后执行的命令的退出代码,这根本不是我想要的。
是否有简单的技巧来实现我正在寻找的东西?
sql - 案例语句与编码 if 语句
什么更有效 - 使用 sql 中的 case 语句处理或使用代码中的 if 语句处理相同的数据。我问是因为我的同事有一个包含许多案例陈述的庞大查询。我建议她通过编写案例语句来减轻数据库的压力。我发现它更有效......但是为什么呢?
ruby - Ruby - case 语句的隐式对象
在 Ruby 中,有没有办法获取 case 语句的隐式对象?
其中 'some_object' 将是按大小写评估的任何语句的返回值
mysql - 使用 CASE 语句帮助 MySQL 查询
我正在尝试根据他们的“总部”或“父”位置将一些客户分组在一起。
这工作正常,除了我在开发系统时没有预见到的一个缺陷......对于没有“父”(独立业务)的客户,我将 parent_id 默认为 0。因此,我的数据看起来像这:
我想要做的是将我的结果组合在一起,以便我有一行用于 CustName#1 和一行用于 CustName#2 但我的问题是没有 parent_id=0 的父记录,并且这些行在使用时被排除在外内部联接。
我尝试过使用 case 语句,但这也不起作用(父母仍然被忽略)
任何帮助将不胜感激。这是我的查询(我的 CASE 基本上是尝试根据 parent_id 从客户表中获取业务名称,当 parent_id = 0 时除外,然后只使用 job_summary 表中列出的客户名称):
sql - 在 Insert 语句的值部分中使用 Case 语句
请原谅我的无知和糟糕的 SQL 编程技能,但我通常是一个基本的 SQL 开发人员。
我需要创建一个触发器来关闭在一个表中插入数据,以将不同的数据插入到另一个表中。
在此触发器中,我需要根据原始表中新插入的数据中的值将某些数据插入到新表中。我对此完全感到困惑。我以为我会很有创意并在价值部分使用案例陈述,但它不起作用。
谁能帮我解决这个问题?(下面是我现在拥有的触发器的代码)
case-statement - 带有计算列的语法 case 语句
在 MS-SQL 2005 中该查询的正确语法是什么?
我在下面收到一条错误消息,我无法破译。我想,它涉及变量类型或与操作数一起使用的语法。
我希望有人能帮帮忙。
问候,
海因
sql - SQL Server - 如何在 2 个可能的 SELECT 语句之间切换
我想在我的 mssql 存储过程中使用一个参数来在小结果和详细结果之间切换(出于可维护性、性能和网络负载的原因)。
如果参数设置为 1 我得到所有列,否则只有一两个最重要的。它以非常有限的方式工作,如下所示:
但我想使用组合的 WHEN 子句。以下是我尝试过的,但这不起作用。
有没有办法实现这样的目标?
asp.net - 带有“全选”选项的下拉列表
我有三个下拉框,Region、District 和 City。我希望我的地区下拉菜单有一个“全选”选项,以便用户可以获取该地区的所有城市,否则只需根据所选地区显示城市。我的查询如下所示:
我正在使用 vb.net/sql 我在搜索中也找不到任何复杂的案例场景。任何建议将不胜感激!
php - SQL:使用 CASE 语句一次更新 1000 行
好的,我想为此使用 a CASE STATEMENT
,但我对此感到迷茫。基本上,我需要更新大量行,但只是在“位置”列上。我需要UPDATE
所有的位置值都大于position - 1
每个 id_layout 和 id_layout_position 的位置值。
好的,这是表格的样子: alt text http://acs.graphicsmayhem.com/images/dp_positions_table.png
现在假设我删除了带圆圈的行,这将删除 position = 2 并给我:0、1、3、5、6、7 和 4。它应该重新定位大于 2 的位置值,以便看起来像这样:0、1、2、4、5、6 和 3。
好的,这是我到目前为止在 ROW 的 DELETING 中得到的内容,所以这是它的外观(注意:$module_info['clones'] = 要删除的克隆数组,在上面的表中没有,因为所有 id_clone 值都是 0,$module_info['id'] 是我们要删除的 id_module 值):
NEW QUESTION:
现在必须有某种方式来使用 CASE STATEMENT UPDATE
。例如,我现在需要根据每个 id_layout 和每个 id_layout_position 将所有位置更新为位置 - 1。但仅当位置大于该 id_layout 和 id_layout_position 值的当前位置时。
无论如何,不使用 a 就可以做到这一点FOREACH LOOP
?