问题标签 [case-when]

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.

0 投票
1 回答
37260 浏览

mysql - 在 MySQL 的选择查询中使用 CASE、WHEN、THEN、END

我正在开发一个与棒球相关的网站。我有一张桌子,上面有两支棒球队的击球阵容:

击球顺序是 1 到 20 之间的整数。这对应于以下逻辑:

  1. 击球顺序 1-9 - 客队阵容
  2. 击球顺序 10 - 客队投手
  3. 击球顺序 11-19 — 主队阵容
  4. 击球顺序 20 - 主队投手

活动字段是一个 tinyint 0 或 1,代表投手在土墩上和击球手在盘子上。

已知事实:总会有一名来自一支球队的现役投手和一名来自对方球队的现役击球手。

我需要编写一个查询,返回对应于 battingOrder中下一个击球手的主队球员的行。(在主动击球手的 battingOrder之后发生的那个)

例子:

  1. 如果 battingOrder 13 中的玩家处于活动状态,则查询应该返回 battingOrder 14 中的玩家。
  2. 如果 battingOrder 19 中的球员处于活动状态,则查询应返回击球顺序为 11 的球员(阵容循环回到球队的第一个球员)。

我以前从未使用过 CASE 查询,但我想出了以下内容:

它似乎有效,但我遇到了哪些边缘情况和/或陷阱?这有效率吗?我对不使用嵌套查询的问题的解决方案特别感兴趣。

0 投票
4 回答
154871 浏览

sql - SQL Server CASE .. WHEN .. IN 语句

在 SQL Server 2005 上,我正在尝试查询此选择语句

它返回以下错误

消息 156,级别 15,状态 1,第 4 行关键字“IN”附近的语法不正确。

请就我的代码可能有什么问题给我一些建议。

0 投票
5 回答
2057 浏览

sql - 当给定的列值为零时,如何使用上面行中的值?

我有一个按日期排列的项目表(每一行都是一个新日期)。我正在从另一列 D 中提取一个值。不过,我需要它来替换 0。我需要以下逻辑:当该日期的 D=0 时,使用前一天 D 列中的值。

实际上,说实话,我需要说的是,当 D 为 0 时,使用 D 不是 0 的最近日期的值,但第一个将使我大部分时间到达那里。

有没有办法建立这个逻辑?也许是CTE?

非常感谢你。

PS我正在使用SSMS 2008。

编辑:起初我不是很清楚。我要更改的值不是日期。我想根据日期用 D 中的最新非零值更改 D 中的值。

0 投票
2 回答
433 浏览

sql - 替换 SQL 查询

我想替换这个查询

到单个 SQL SELECT 语句而不使用@tmpUser或任何其他临时表

0 投票
3 回答
72 浏览

sql - 两个查询是否相同?

两个查询是否相同?两者都返回相同的结果吗?

1)

2)

0 投票
2 回答
2747 浏览

mysql - MySql 条件分组方式

请考虑我的表格(这只是一个简化版本,在我的项目中,我得到了 600,000+ 条记录):

我需要做的是,何时TransactionTypeId = 1,我需要从该表中获取最新数据。否则,当 时TransactionTypeId <> 1,我需要全部获取。

对于这种情况,我有这个查询:

我想要的结果是:

但我的问题是,即使TransactionTypeId <> 1,查询仍然对它们进行分组。

我的查询返回:

我知道我可以UNION在这里使用,为TransactionTypeId列单独查询,但我不能,我花了 5 多分钟才得到结果。有没有可能(如果没有,我别无选择,只能使用UNION)方法来解决这个问题?

谢谢 :)

更新#1

这是我使用时的查询UNION

0 投票
4 回答
11489 浏览

sql - SQL:Case When 子句中的嵌套条件

我有这样的Case-When条款;

我想在之后使用条件THEN

例如;

如何在中使用嵌套条件Case-When

0 投票
1 回答
6083 浏览

oracle - Oracle新手错误:ORA-00904 Invalid identifier when using "case when"

我在查询中遇到错误。此查询正常并返回数据(选择和行数用于分页):

现在我试图包含一个“case when”并仅在某些情况下获取 url,所以我进行了这些修改,包括一个 case 块:

Oracle 启动此错误:

我想那是因为我要求 inscription_date 并在同一查询级别使用它,但我不知道如何处理这个问题。

另外,我怎样才能做出我想做的东西?我的意思是,仅在特定条件下获取 url。

有人可以帮忙吗?

先感谢您。

0 投票
1 回答
2461 浏览

tsql - TSQL 和 case when 有多个 whens?

我有几个条件,结果应该是一样的。我在网上搜索并找到了这样的东西:

这很好,但不是我需要的,对我来说,它更像是 R、M、T 和 S 都具有相同的结果,而 A、B、C、D 例如没有。我该怎么做?我无法与 OR 联系,或者至少我没有设法联系:)。可能是这样的?

0 投票
3 回答
545 浏览

sql - 对 INSERT 中的 CASE WHEN 的 SQL 语句感到困惑

我有以下 SQL 语句(用于 SQL Server):

我收到一个错误:“列名 'maxV' 无效”

为什么?