问题标签 [where-clause]
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.
linq - Linq 和多个 Where's
我正在尝试查看是否有一种方法可以构建一个 Linq 语句,该语句将根据元素中的可用属性进行选择,结果将是什么,尽管并非所有属性都始终可用。
例如,这将是一个“标准”元素:
但是,这也是完全有效的:
还有这个:
我想做的是有一个 Linq 语句,上面写着“如果左右都存在,则将它们相加并除以 2。如果只存在左边,则使用该值。如果只存在右边,则使用该值。”。我知道这可以通过一系列复杂的 If/Then 语句来完成,但我试图看看这是否可以在 Linq 中完成。
我已经尝试了一些事情,但是在返回值方面遇到了问题 - 如何返回正确的值。例如,以下返回值,但不一定是正确的:
我尝试过使用 select 语句,但它并不完全有效。关于如何做到这一点的任何想法?
mysql - Count() 使用 Where 子句和左连接
我有一个类似于以下的查询:
SELECT users.id FROM users LEFT JOIN sales ON installations.customer = users.id
我想说的是“WHERE count(sales.id) > 4”之类的东西——这意味着如果用户有超过 4 个销售关联。我不确定我是否以错误的方式进行此操作
sql - 连接条件或where子句中的SQL过滤条件更有效
我有一个相对简单的查询连接两个表。“Where”条件可以在连接条件中表示,也可以用 where 子句表示。我想知道哪个更有效。
查询是查找推销员从开始到晋升的最大销售额。
情况1
案例2
注意案例 1 完全没有 where 子句
RDBMS 是 Sql Server 2005
编辑 如果连接标准的第二部分或 where 子句是 sales.salesdate < 某个固定日期,那么实际上连接两个表的任何标准都不会改变答案。
sql - SQL Server 2008 - 布尔变量更改查询
我有以下查询:
这将返回过去 30 天内看到的所有产品。
我的问题是,我希望该p.LastSeen > GETDATE() - 30
条款仅适用于 when @IsStocked = true
。
这是一个更大查询的一部分,我想在不使用 IF/ELSE 语句的情况下实现这一点(即,如果WHERE 子句@IsStocked = false
的p.LastSeen > GETDATE() - 30
部分被完全忽略)。
谢谢!
sql - 说“select 语句的 where 子句只能对一列执行 >、>=、<、<= 操作”是什么意思?
根据Google App Engine 上的 Wikipedia 文章:
select 语句的 where 子句只能对一列执行 >、>=、<、<= 操作。因此,只能构造简单的 where 子句。
这是什么意思?
sql - 我的简单 sql 更新查询无法正常工作:(
我有一个简单的 sql 查询,它试图更新一行。该代码来自一些 Linq-to-sql 代码(我使用 Profiler 抓取它),但请不要担心源(L2S)......这与问题无关。
现在,当我尝试使用 where 子句进行更新时,我得到了 0 行更新。
然后我尝试select
使用相同的where clause
. 我得到一个结果。好的,所以数据在那里。
只有当我关闭某些where clause statements
查询时,查询才最终起作用。我只是不明白:(
我真的无法解释。所以我制作了一个视频来展示这一点。
请在此处观看 YouTube 上的视频。
任何人都可以帮忙吗?这真的很奇怪:(
数据库是 MS-SQL 2008。
- 更新
我正在尝试执行的 sql(在我从 L2S 中清除它之后)..
(注意:是的,我知道 NOT (blah = 1))很奇怪,但这是 L2S 造成的。
更新 2:
视频中的代码正在事务/回滚事务中运行。这意味着如果我确实运行了其中一个有效的奇怪场景,则更改有效..但是回滚会撤消它..所以当我第二次运行它时..原始值已返回到数据库行。
此外,在 vid 中,选择查询与更新查询不完全相同 .. 因为我一直在尝试很多排列(没有运气) .. 所以当我制作 vid 时 .. 我忘了显示原始代码。也就是说,select 语句和 update/where 语句中的相同代码(当我在我的机器上复制/粘贴时)重现了完全相同的问题 :(
更新 2 :)
根据 Lieven 的要求,这是显示代码和结果的屏幕截图。
c# - C#、Linq to Sql:为什么不能使用表达式过滤子实体?
我为自己创建了一个 ExpressionBuilder 类,它可以帮助我在执行 Linq to Sql 查询时将可用作谓词的表达式组合在一起。它工作得很好。但是,我刚刚发现表达式只能用于过滤表,而不是实体集?为什么会这样?
例如,如果我有公司和有薪水的员工。我可以创建这两个表达式:
然后我希望能够执行以下操作,但是它仅部分有效:
此外,如果我执行ep.Compile()
它会编译,但是在运行查询时会出现错误。
为什么会这样?我错过了什么吗?我觉得这不合逻辑。我能以某种方式解决这个问题吗?或者你有什么好的解决方法?
我知道在这种情况下我可以Where(x => x.Name.StartsWith("John"))
改用,但问题是我需要的表达式并不是那么微不足道。它们是较长的AndAlso
s 和OrElse
s 字符串。
c# - 没有匹配项时的LINQ结果?
没有匹配项时,LINQ 函数究竟返回什么?以 Where 方法为例:
此时的结果是什么?
sql-server - T-SQL Where 子句案例语句优化(StoredProc 的可选参数)
我已经和这个斗争了一段时间了。我有一个存储过程,它接受 3 个用于过滤的参数。如果传入了特定值,我想对其进行过滤。如果传入-1,全部给我。
我已经尝试了以下两种方法:
第一种方式:
第二种方式:
我在某处读到第二种方法会短路,如果为真,则永远不会评估第二部分。我的 DBA 说它强制进行表扫描。我尚未对此进行验证,但在某些情况下似乎运行速度较慢。
该视图从中选择的主表有大约 150 万条记录,并且该视图继续连接大约 15 个其他表以收集大量其他信息。
这两种方法都很慢......从即时到任何地方都需要 2-40 秒,这在我的情况下是完全不可接受的。
有没有更好的方法不涉及将其分解为特定 vs -1 的每个单独案例?
任何帮助表示赞赏。谢谢。
mysql - MYSQL IN 或多个条件
我有一个简单的查询,它根据status
没有特定值的字段返回记录。假设为了参数,该字段可以具有值 1、2、3...10,并且我想返回所有不具有值 3、7 和 9 的记录。以下哪个最好使用?
选项1。
选项 2。
谢谢你的帮助。