问题标签 [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.

0 投票
1 回答
293 浏览

linq - Linq 和多个 Where's

我正在尝试查看是否有一种方法可以构建一个 Linq 语句,该语句将根据元素中的可用属性进行选择,结果将是什么,尽管并非所有属性都始终可用。

例如,这将是一个“标准”元素:

但是,这也是完全有效的:

还有这个:

我想做的是有一个 Linq 语句,上面写着“如果左右都存在,则将它们相加并除以 2。如果只存在左边,则使用该值。如果只存在右边,则使用该值。”。我知道这可以通过一系列复杂的 If/Then 语句来完成,但我试图看看这是否可以在 Linq 中完成。

我已经尝试了一些事情,但是在返回值方面遇到了问题 - 如何返回正确的值。例如,以下返回值,但不一定是正确的:

我尝试过使用 select 语句,但它并不完全有效。关于如何做到这一点的任何想法?

0 投票
3 回答
1338 浏览

mysql - Count() 使用 Where 子句和左连接

我有一个类似于以下的查询:

SELECT users.id FROM users LEFT JOIN sales ON installations.customer = users.id

我想说的是“WHERE count(sales.id) > 4”之类的东西——这意味着如果用户有超过 4 个销售关联。我不确定我是否以错误的方式进行此操作

0 投票
9 回答
23421 浏览

sql - 连接条件或where子句中的SQL过滤条件更有效

我有一个相对简单的查询连接两个表。“Where”条件可以在连接条件中表示,也可以用 where 子句表示。我想知道哪个更有效。

查询是查找推销员从开始到晋升的最大销售额。

情况1

案例2

注意案例 1 完全没有 where 子句

RDBMS 是 Sql Server 2005

编辑 如果连接标准的第二部分或 where 子句是 sales.salesdate < 某个固定日期,那么实际上连接两个表的任何标准都不会改变答案。

0 投票
3 回答
10132 浏览

sql - SQL Server 2008 - 布尔变量更改查询

我有以下查询:

这将返回过去 30 天内看到的所有产品。

我的问题是,我希望该p.LastSeen > GETDATE() - 30条款仅适用于 when @IsStocked = true

这是一个更大查询的一部分,我想在不使用 IF/ELSE 语句的情况下实现这一点(即,如果WHERE 子句@IsStocked = falsep.LastSeen > GETDATE() - 30部分被完全忽略)。

谢谢!

0 投票
3 回答
190 浏览

sql - 说“select 语句的 where 子句只能对一列执行 >、>=、<、<= 操作”是什么意思?

根据Google App Engine 上的 Wikipedia 文章

select 语句的 where 子句只能对一列执行 >、>=、<、<= 操作。因此,只能构造简单的 where 子句。

这是什么意思?

0 投票
2 回答
2943 浏览

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 的要求,这是显示代码和结果的屏幕截图。

替代文字 http://img196.imageshack.us/img196/7111/lieven.png

0 投票
3 回答
1014 浏览

c# - C#、Linq to Sql:为什么不能使用表达式过滤子实体?

我为自己创建了一个 ExpressionBuilder 类,它可以帮助我在执行 Linq to Sql 查询时将可用作谓词的表达式组合在一起。它工作得很好。但是,我刚刚发现表达式只能用于过滤表,而不是实体集?为什么会这样?

例如,如果我有公司和有薪水的员工。我可以创建这两个表达式:

然后我希望能够执行以下操作,但是它仅部分有效:

此外,如果我执行ep.Compile()它会编译,但是在运行查询时会出现错误。

为什么会这样?我错过了什么吗?我觉得这不合逻辑。我能以某种方式解决这个问题吗?或者你有什么好的解决方法?

我知道在这种情况下我可以Where(x => x.Name.StartsWith("John"))改用,但问题是我需要的表达式并不是那么微不足道。它们是较长的AndAlsos 和OrElses 字符串。

0 投票
3 回答
6108 浏览

c# - 没有匹配项时的LINQ结果?

没有匹配项时,LINQ 函数究竟返回什么?以 Where 方法为例:

此时的结果是什么?

0 投票
5 回答
18251 浏览

sql-server - T-SQL Where 子句案例语句优化(StoredProc 的可选参数)

我已经和这个斗争了一段时间了。我有一个存储过程,它接受 3 个用于过滤的参数。如果传入了特定值,我想对其进行过滤。如果传入-1,全部给我。

我已经尝试了以下两种方法:

第一种方式:

第二种方式:

我在某处读到第二种方法会短路,如果为真,则永远不会评估第二部分。我的 DBA 说它强制进行表扫描。我尚未对此进行验证,但在某些情况下似乎运行速度较慢。

该视图从中选择的主表有大约 150 万条记录,并且该视图继续连接大约 15 个其他表以收集大量其他信息。

这两种方法都很慢......从即时到任何地方都需要 2-40 秒,这在我的情况下是完全不可接受的。

有没有更好的方法不涉及将其分解为特定 vs -1 的每个单独案例?

任何帮助表示赞赏。谢谢。

0 投票
2 回答
60 浏览

mysql - MYSQL IN 或多个条件

我有一个简单的查询,它根据status没有特定值的字段返回记录。假设为了参数,该字段可以具有值 1、2、3...10,并且我想返回所有不具有值 3、7 和 9 的记录。以下哪个最好使用?

选项1。

选项 2。

谢谢你的帮助。