问题标签 [row-value-expression]
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 in 子句中使用元组
给定这样的数据库:
我想做一些类似的事情
得到答案'一','三',但我得到“接近”,“:语法错误”
这在任何风格的 SQL 中都可能吗?(我正在使用 sqlite)
我犯了一个严重的概念错误吗?要不然是啥?
sql - 如何比较sql中的元组组
如何比较 sql 中的元组组:考虑以下示例:
我想编写一个 sql 查询来比较两个表中的值组并报告差异。在图示示例中,表 a 中的组:((A,FOO),(A,BAR)) 与组 ((C,FOO),(C,BAR)) 相同,即使组名不同. 重要的是组的内容是相同的。最后,查询将报告存在差异:它是 (B,ZOO) 元组。
尽管 T1 中包含 ZOO 的组 X 在 T2 中具有匹配值:(B,ZOO) 它仍然不是匹配项,因为该组还具有不属于 (B, ZOO) 组的 (X, HHH) 值在T2
sql - 在 SQL (SQLite3) 中将 IN 与元组集一起使用
我在 SQLite3 数据库中有下表:
我想执行以下查询:
也就是说,我有几个注释 ID 元组,我想为每个元组获取记录。sqlite3 提示给我以下错误:
如何正确地将其表达为 SQL 语句?
编辑我意识到我没有很好地解释我真正追求的东西。让我再试试这个。
neighbors_of_annotation
如果有人给了我他们感兴趣的任意术语列表,我可以编写如下 SQL 语句:
但是现在假设那个人想给我成对的术语,如果形式(TERM_1,1, TERM_1,2)
, (TERM_2,1, TERM_2,2)
, ..., (TERM_N,1, TERM_N,2)
, where TERM_i,1
is inneighbors_of_annotation
和TERM_i,2
is in other_annotation
。SQL 语言是否提供了一种同样优雅的方式来为感兴趣的对(元组)制定查询?
最简单的解决方案似乎是为这些对创建一个新表,然后将该表与要查询的表连接起来,并仅选择第一个词和第二个词匹配的行。创建大量AND /
OR
语句看起来很可怕且容易出错。
sql - 是否可以在 SQL 查询的 `WHERE` 子句中比较 *tuples*?
是否可以在SQL 查询的子句中比较元组(谢谢,a_horse_with_no_name) ?WHERE
这样,我可以转换它:
变成类似这样的东西:
mysql - SQL:元组比较
在我当前的应用程序中,我需要能够执行这种类型的查询:
并得到 的答案(333, 'B', 'B')
,给定以下数据:
在实际 SQL 中完成此任务的最有效方法是什么?请记住,这是一个玩具示例,并且我的实际应用程序具有具有不同列和数据类型以及数亿行的表。我使用 MySQL,如果有帮助的话。您还可以假设这些列上有一个 PRIMARY 或 UNIQUE 索引。
如果解决方案很容易扩展到更多/更少的列,那就更好了。
元组比较:
有几个人问过,所以我应该把这个放在问题中。元组是按字典顺序排列的,这意味着序列的顺序与它们的第一个不同元素相同。例如,(1,2,x) < (1,2,y) 返回的结果与 x < y 相同。
值得注意的是 SQL(或至少 mysql)正确地实现了这一点:
这是创建示例所需的 SQL:
添加这个索引似乎会导致表格按字典顺序排序,这很有趣。在我们的生产系统中并非如此。
sql - SQLite 元组相等比较
使用 PostgreSQL 和 MySQL 可以做类似的事情
当我在 SQLite3 上尝试相同的操作时,它给了我一个令人筋疲力尽的错误消息:
从 SQLite 文档中我无法确定它是否支持元组。任何人都可以对此有所了解吗?
sql - sqlite 元组比较
尝试做与这个问题相同的事情,但这次是在 sqlite 中。在我当前的应用程序中,我需要能够执行这种类型的查询:
并得到 的答案('Liz', 'Jordan', 2)
,给定以下数据:
在 sqlite 中完成此任务的最有效方法是什么?请记住,这是一个玩具示例,并且我的实际应用程序具有包含更多列和数据类型以及数亿行的表。
如果解决方案很容易扩展到更多/更少的列,那就更好了。
元组比较:
元组是按字典顺序排列的,这意味着序列的顺序与它们的第一个不同元素相同。例如,(1,2,x) < (1,2,y) 返回的结果与 x < y 相同。
值得注意的是,SQL-92(以及 mysql、oracle、postresql)正确地实现了这一点。该标准使用“行值构造函数”来表示我所说的元组。该行为在第 8.2.7 部分,第 209 页中详细定义。
这是创建示例所需的 SQL:
sql - SQL Where 子句
我的应用程序最初有一个类似于此的查询:-
其中 list 是逗号分隔的列表。
但是,现在要求已经改变,我必须查询 Persons 表并给出姓名和年龄。我有 nameAgeList。
最初,我认为与此类似的查询会起作用(从 nameAgeList 创建 nameList 和 ageList)
但仔细思考后,这似乎是一个错误的查询。
请让我知道我应该如何继续进行此查询。
sql - 在 SQL“IN”子句中使用元组
我有一个包含字段 group_id 和 group_type 的表,我想从元组列表中查询具有任何元组(组 id、组类型)的所有记录。例如,我希望能够执行以下操作:
一个非常类似的问题已经被问到:using tuples in sql in Clause,但是那里提出的解决方案假定元组列表是从另一个表中获取的。这在我的情况下不起作用,因为元组值是硬编码的。
一种解决方案是使用字符串连接:
但问题是表很大,对每条记录进行字符串连接和转换会非常昂贵。
有什么建议吗?
sql - SQL WHERE IN 子句中的多键
假设您有一个Accounts
表,其中ID
列是 PK 并且TaxID+AccountNumber
是唯一约束:
现在您想使用自然键进行类似的查询:
所以这涉及到元组,看起来很合法。是否可以用 ANSI SQL 以某种方式表达?也许在某些特定的 SQL 扩展中?如果不是,为什么(会欣赏任何猜测)?