问题标签 [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.
sql - SQL:从多行(tbl 2)填充单行(tbl 1);跨数据库
我在我的主数据库中创建了一个名为的表tblGlobalIDMapping
,它将为所有条目分配一个 GUID,并在整个应用程序中存储其他 3 个主 ID,以提供单个 ID 存储库。
新表的结构如下-->
我需要的信息位于具有以下部分结构的不同数据库(同一服务器)中的表中->
对于每个应用程序,一个人(ID#13579)在第二个表 1 中表示。ApplicationID 列存储一个数字,1 代表 DRIMaster,6 代表 DRIClient,它告诉您 PersonApplicationID 中的 ID# 是什么。
我需要将该表中的批量复制/插入到我的新表中,但我只需要 1 行记录新表中的 3 个主 ID。
这是我到目前为止所拥有的,但这会为每个 PersonID 返回一行。
这将返回以下内容 -->
sql - ORDER BY 几列中的 CASE
使用 case-then 块,我需要选择如何对我的 SQL 2008 查询进行排序,by[status] ASC, [date] DESC
或 just [date] DESC
。
我只知道如何使用一列:
如何在第二种情况下使用两列?
sql-server - SQL Server CASE WHEN 不使用 CASE WHEN
有没有办法在不使用 CASE WHEN 的情况下重写使用 CASE WHEN 结构的 Transact SQL 语句来做同样的事情?
我正在使用具有内置查询设计器和自己的伪 SQL 的产品。它对我可以与 SQL Server 和 Oracle 一起使用的内容有限制。所以我有这个专栏,当底层数据库是 Oracle 时,使用 DECODE(支持)。但是,我需要让它与 SQL Server 一起使用,并且不支持 CASE WHEN。
我试图转换的语句类似于
我有一组有限的 T-SQL 选项可供使用,CASE WHEN 不是一个选项。我确实有 IsNull 和 Coalesce,但我不确定他们是否会帮助我解决这个问题。
不要为日期计算而烦恼,这些都解决了。
我在这里搜索了 CASE WHEN 问题,但无济于事。
谢谢!
更新:
我意识到我应该提供更多关于限制原因的详细信息,因为这是开发人员的资源,并且会假定这是一个开发产品。它不是。
我正在使用具有内置查询设计器和自己的伪 SQL 的企业软件产品。它对我可以与 SQL Server 和 Oracle 一起使用的内容有限制。基本上,所有不破坏内置查询引擎解析的东西都是游戏。这意味着所有批准的函数和表达式,加上所有数据抽象(对应于数据库中的物理表的内部对象和使用产品创建的其他查询),加上 Oracle SQL 或 Transact SQL 中没有显式破坏解析的所有内容.
CASE WHEN 对我不起作用的原因是它破坏了查询引擎对伪 SQL 的解析。
最终,我想尝试:
- 仅使用产品的查询设计器通过解析的 SQL 或
- 使用来自 SQL Server 数据库和查询设计器的一些额外资源来完成它。
根据我得到的几个好的答案,到目前为止,这是对我有用的方法。
Jason DeFontes 建议我可以使用数据库视图来执行 CASE WHEN 规则,这属于上面的#2。它对我有用,因为视图足够动态,我不必对其进行维护(与richartallent 的真值表方法相反,我认为它接近 Jason 的方法)。Pascal 关于创建函数的建议将遵循相同的思路,但可能会破坏解析。
因此,我创建了一个数据库视图,它使用 CASE WHEN 进行所有转换,并将其添加到查询的 SQL 中,将其与现有 SQL 结合起来,它工作得很好。我意识到我可能会增加数据库引擎的开销,因为它必须检索相同的数据集两次(一次用于视图,一次用于查询),但这是几乎不成问题的情况之一。
鉴于这种“使用视图来混淆它”的设计对我有用,我想知道更有效的方法是什么:
- 使用带有 CASE WHEN 的选择;
- 使用 CTE(再次,richardtallent);
- 使用联合所有(HLGEM);
- 使用子查询(MisterZimbu);
我仍然会检查 Aramis wyler 的建议,因为它可能属于上面的#1。
目前,杰森的回答被接受了。考虑到我在视图中使用了 CASE WHEN,也许问题的标题最终选择不当。我提高了每个人的建议,在这个过程中有所帮助。我不知道这是否会影响您的声誉,但我认为这是一件好事。
再次,我要感谢大家的帮助,并恳请您对您认为不合适的问题进行编辑(这是我的第一个问题,英语是我的第二语言)。
sql-server - 如何在 SQL Server 上的 CASE WHEN 中选择多个列?
我已经广泛搜索了这个网站,但找不到解决方案。
这是我的查询示例:
显然我遗漏了很多查询,我只是想看看它是否可能。
我知道我可能只能做两次“案例”,但我想我会问......
sql - 订购时的 Oracle SQL 案例
我必须按某列整理我的数据,以便首先出现某个特定值。所以对于这样的查询......
...我基于它case when
,但困扰我的是我现在拥有的三个嵌套选择:
性能方面,我认为这应该不是问题,但它看起来有点像意大利面条......有什么办法可以放入case-when
条款中where
吗?
sql - 使用 CASE WHEN 在 postgresql 中创建数据透视表的正确方法
我正在尝试在 postgresql 中创建一个数据透视表类型视图,并且快到了!这是基本查询:
和数据:
我想要得到的是以下内容:
我正在尝试使用 CASE WHEN 来做到这一点,所以我已经做到了以下几点:
这给了我输出:
现在我知道我必须在某个时候按 acc 分组,所以我尝试
但我得到了可怕的
我能找到的所有前面的例子都在 CASE 语句周围使用了 SUM() 之类的东西,所以我猜那是聚合函数。我尝试过使用 FIRST():
但得到错误:
任何人都可以提供任何提示吗?
mysql - Mysql CASE - WHEN - THEN - 返回错误的数据类型(blob)
我在网上商店创建可定制的产品属性 - 每个属性可以有不同类型的数据,每个数据类型都使用相应的 mysql 数据类型存储在单独的列中。
我有一个像这样的查询:
现在,问题是当attribute_types
. type
等于?某种类型?我希望它返回一个值,因为它存储在product_attribute_values
表中。目前我每次都得到 BLOb。
我应该使用类型转换还是有一些我不知道的幕后魔法,或者也许有更好的选择?
编辑:
一切似乎都还好(我正在检查浮动价格),直到我为 TEXT(textarea)添加条件。
sql - Easy SQL Select Case When Statement 抛出不正确的语法错误,我找不到它!
感谢所有试图提供帮助的人!
我有 2 个案例选择语句,并且在此语句中出现错误:
我得到的错误是:没有为“ANDREWSTABLE”的第 14 列指定任何列。
请参阅下面的完整声明中的位置:
我哪里做错了?它说我的语法不正确,我盯着又盯着又用谷歌搜索了又用谷歌搜索,但我想不出如何纠正这个问题!它一定很简单。
再次感谢您的所有帮助!
sql - SQL 列/行格式问题
我的查询返回一个可以容纳房地产类型的列。值可以是condo或duplex或house等。我只想要列中的C ,而不是显示公寓。我的计划是使用一个巨大的案例/何时结构来涵盖所有案例,有没有更简单的方法?顺便说一句,仅以大写显示第一个字母是行不通的,因为有时该规则不能应用于创建短代码。双工例如是DE ...
谢谢 :-)
tsql - 如何使用 T-SQL 的 Case/When?
我有一个巨大的查询,它经常使用case/when 。现在我这里有这个 SQL,它不起作用。
造成麻烦的是xyz.somethingelseagain = 2
,它说它无法绑定该表达式。xyz 是在查询中进一步连接的表的别名。这里有什么问题?删除 2 个 case/whens 中的一个可以纠正这一点,但我需要它们两个,可能更多的情况。