我有一个看起来像这样的表:
ID | FIELD_NAME | VALUE
23 | sign_up | yes
23 | first_name | Fred
23 | street | Barber Lane
24 | sign_up | no
24 | first_name | Steve
24 | street | Camaro St.
25 | sign_up | yes
25 | first_name | Larry
25 | street | Huckleberry Ave
我想运行一个查询,该查询将选择唯一的ID和值作为命名列,因此它看起来像这样:
ID | SIGN_UP | FIRST_NAME | STREET |
23 | yes | Fred | Barber Lane |
24 | no | Steve | Camaro St. |
25 | yes | Larry | Huckleberry Ave. |
任何帮助将非常感激!!
您可以使用以下简单解决方案:
SELECT DISTINCT
a.id,
b.value AS SIGN_UP,
c.value AS FIRST_NAME,
d.value AS STREET
FROM tbl a
LEFT JOIN tbl b ON a.id = b.id AND b.field_name = 'sign_up'
LEFT JOIN tbl c ON a.id = c.id AND c.field_name = 'first_name'
LEFT JOIN tbl d ON a.id = d.id AND d.field_name = 'street'
为了安全起见,我创建了join LEFT JOIN
,因为我不知道id是否可以包含 缺少的
字段,在这种情况下,它们将显示NULL
在我们的派生列中。
SQL提琴演示
问题内容: 我有一张桌子,像这样: 我想选择具有相同基因座和染色体的所有行。例如,第3行和第4行。一次可能有2个以上,并且它们可能不是按顺序排列的。 我尝试了这个: 但是,即使重复,它总是返回第3行,从不返回第4行。我想我缺少明显而简单的东西,但我茫然。 有人可以帮忙吗? 问题答案: 您需要了解,当您在查询中包含内容时,您是在告诉SQL合并行。您将为每个唯一值获得一行。在随后过滤这些组。通常,您可
我有ES索引,其中包含以下格式的文档,这些文档使用Fluentd解析器从日志中解析,并在ES中索引。记录格式: {"id":"id1","field 1":"f1_val","消息":"XXXX","时间":"XXXX"} {"id":"id1","field 2":"f2_val","消息":"XXXX","时间":"XXXX"} {"id":"id1","field 3":"f3_val","
问题内容: 我正在尝试查询sybase服务器,以获取我们为测试目的而持有的不同类型数据的示例。 我有一张看起来像下面的表格(摘要) 正如我提到的那样,我想要每种类型的示例,因此对于上表,它需要一个类似的结果集(实际上,我只想要ID): 我尝试了以下查询的多种组合,但它们要么是无效的SQL(对于sybase),要么返回了无效的结果 您知道如何实现此查询吗? 问题答案: 也许您必须使用聚合函数或用于列
其中一个测试通过,另一个给出以下错误: java.lang.ClassCastException:类org.springframework.http.ResponseEntity不能强制转换为类org.junit.jupiter.api.function.executable(org.springframework.http.ResponseEntity和org.junit.jupiter.api
问题内容: 在一页中为多个元素提供相同的ID是否安全?例如,当使用某些jquery插件,两次或多次运行某些滑块或图库时,通常会发生这种情况。我们知道,开发人员喜欢给html容器一些ID,以使脚本工作更快。 让我们阅读w3.org文档: 使ID类型的属性特别的原因是,没有两个这样的属性可以具有相同的值。无论使用哪种文档语言,ID属性都可以用来唯一标识其元素。 但是下一个示例具有2个具有相同ID的元素
问题内容: 在以下代码中,我不明白为什么当它属于两个不同的对象时具有相同的ID? 问题答案: 我认为这是正在发生的事情: 取消引用时,将在内存中创建其副本。该存储位置由以下位置返回 由于没有引用到刚刚创建的方法的副本,因此GC将其回收,并且该内存地址再次可用 取消引用时,将在相同的内存地址(可用)中创建它的副本,您可以再次使用该地址。 第二个副本是GCd 如果您要运行一堆其他代码并再次检查实例方法