小编Luk*_*der的帖子

在 DB2 中进行旋转

我必须将 DB2 表中的行转置为列。这就是我的表的结构。

ItemID    Item    Value
---------------------
1     Meeting     Now
1     Advise      Yes
1     NoAdvise    No
2     Meeting     Never
2     Advise      No
2     NoAdvise    Null
2     Combine    Yes
Run Code Online (Sandbox Code Playgroud)

我希望将其转置为(请注意,我不想转置组合)

ItemID    Meeting  Advise   NoAdvise 
---------------------------------------
1         Now      Yes       No
2         Never    No        Null
Run Code Online (Sandbox Code Playgroud)

查询有点困难,可以帮忙吗?

sql db2 pivot

4
推荐指数
1
解决办法
2万
查看次数

如何在带有jooq的普通sql中使用命名参数

我将 JOOQ 与普通/原始 SQL 一起使用,这意味着我没有使用任何代码生成或流畅的 DSL 东西。

以下代码有效:

Connection connection = ...;
DSLContext context = DSL.using(connection, ...);
String sql = "select * from mytable t where (t.id = ?)"; 
String id = ...; //
Result<Record> result = context.fetch(sql, id);
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个带有多个参数的查询,如下所示:

String sql = "select * from mytable t where (t.id = ?) " + 
             "and (t.is_active = ?) and (t.total > ?)"; 
Run Code Online (Sandbox Code Playgroud)

如何在这些类型的查询中使用命名参数?我在想这样的事情:

String sql = "select * from mytable t where (t.id = :id) " + 
             "and (t.is_active = …
Run Code Online (Sandbox Code Playgroud)

java sql jooq

4
推荐指数
1
解决办法
4175
查看次数

使用jOOQ间隔实现date_sub()函数

我一直在处理这个问题.

问题是我正在将我的查询迁移到jOOQ,当我尝试实现这部分时我遇到了问题:

select * from table where condition1 and date1 >= date_sub(now(), interval 1 days)
Run Code Online (Sandbox Code Playgroud)

具体来说这部分条件是:date_sub(now(),间隔1天)和jOOQ.

所以我的问题是:

  1. 我应该从jOOQ使用哪些函数来表示date_sub?

  2. 如何使用jOOQ 实现间隔X天

为了澄清,日期是Timestamp类型

提前致谢!

java mysql sql jooq

4
推荐指数
1
解决办法
1852
查看次数

PostgreSQL 9.0 和 9.1 之间枚举类型文字的排序差异

enum类型在 PostgreSQL 9.0 和 9.1 之间的工作方式发生了一些奇怪的更新。该pg_catalog.pg_enumenumsortorder在 PostgreSQL 9.1中有一个新列。这个顺序似乎覆盖了之前基于 OID 的枚举顺序。

PostgreSQL 9.0 文档

特定枚举类型的 OID 保证按类型排序的方式排序,但不保证无关枚举类型的 OID 的排序。

PostgreSQL 9.1 文档

pg_enum 行的 OID 遵循一个特殊规则:保证偶数 OID 的排序方式与其枚举类型的排序顺序相同。也就是说,如果两个偶数 OID 属于同一枚举类型,则较小的 OID 必须具有较小的 enumsortorder 值。奇数 OID 值与排序顺序无关。此规则允许枚举比较例程在许多常见情况下避免目录查找。创建和更改枚举类型的例程尝试尽可能将 OID 分配给枚举值。

创建枚举类型时,其成员被分配排序顺序位置 1..n。但是后来添加的成员可能会被赋予 enumsortorder 的负值或小数值。对这些值的唯一要求是它们在每个枚举类型中正确排序和唯一。

我的问题

对于jOOQ 代码生成器,我正在阅读pg_catalog.pg_enum表,按 OID 对枚举文字进行排序,这是在 PostgreSQL 9.0 中指定的方式。使用 udpated 规范,似乎我应该按 对文字进行排序enumsortorder,它的行为似乎有所不同,因为它尊重“中间”的枚举文字插入。

pg_catalog.

sql postgresql jooq postgresql-9.0 postgresql-9.1

4
推荐指数
1
解决办法
4364
查看次数

Elasticsearch前缀查询不适用于嵌套文档

我正在使用弹性搜索查询的前缀查询.在顶级数据上使用它时工作正常,但一旦应用于嵌套数据,就不会返回任何结果.我尝试查询的数据如下所示:

这里前缀查询工作正常:查询:

{ "query": { "prefix" : { "duration": "7"} } }
Run Code Online (Sandbox Code Playgroud)

结果:

{
   "took": 25, ... },
   "hits": {
      "total": 6,
      "max_score": 1,
      "hits": [
         {
        "_index": "itemresults",
        "_type": "itemresult",
        "_id": "ITEM_RESULT_7c8649c2-6cb0-487e-bb3c-c4bf0ad28a90_8bce0a3f-f951-4a01-94b5-b55dea1a2752_7c965241-ad0a-4a83-a400-0be84daab0a9_61",
        "_score": 1,
        "_source": {
           "score": 1,
           "studentId": "61",
           "timestamp": 1377399320017,
           "groupIdentifiers": {},
           "assessmentItemId": "7c965241-ad0a-4a83-a400-0be84daab0a9",
           "answered": true,
           "duration": "7.078",
           "metadata": {
              "Korrektur": "a",
              "Matrize12_13": "MA.1.B.1.d.1",
              "Kompetenz": "ZuV",
              "Zyklus": "Z2",
              "Schwierigkeit": "H",
              "Handlungsaspekt": "AuE",
              "Fach": "MA",
              "Aufgabentyp": "L"
           },
           "assessmentSessionId": "7c8649c2-6cb0-487e-bb3c-c4bf0ad28a90",
           "assessmentId": "8bce0a3f-f951-4a01-94b5-b55dea1a2752"
        }
     }, …
Run Code Online (Sandbox Code Playgroud)

prefix elasticsearch

4
推荐指数
1
解决办法
1144
查看次数

如何完全限定包名与本地成员名冲突的类?

好的,这里是JLS专家的一个非常好奇的Java 7语言谜题.以下代码不能用javac和Eclipse编译:

package com.example;

public class X {
    public static X com = new X();

    public void x() {
        System.out.println(com.example.X.com);
        // cannot find symbol  ^^^^^^^
    }
}
Run Code Online (Sandbox Code Playgroud)

似乎成员com完全阻止com.*从内部访问包X.然而,这并未得到彻底应用.以下工作,例如:

public void x() {
    System.out.println(com.example.X.class);
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

  • 这种行为如何从JLS中证明是正确的?
  • 我该如何解决这个问题

注意,这只是对生成代码中的实际问题的简化,其中com.example.X需要完全限定并且com不能重命名成员.

更新:我认为它实际上可能是类似这样的问题:为什么我不能在Java中"静态导入"一个"等于"方法?

java visibility jls java-7

4
推荐指数
1
解决办法
586
查看次数

将@Transactional与JOOQ一起使用

我正在尝试JOOQ,我首先想到的是运行一个将自动回滚的事务单元测试.我似乎没有让它工作,我不知道从这里去哪里.日志显示事务已启动并回滚.但是更改仍然会提交到数据库.

如何使Spring中的事务与JOOQ正常工作?

2013-11-04 23:41:14,353 [main] DEBUG DataSourceTransactionManager: Creating new transaction with name [insertPersons]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT; ''
2013-11-04 23:41:14,369 [main] DEBUG DataSourceTransactionManager: Acquired Connection [jdbc:mysql://localhost/jooq-learn, UserName=jooq@localhost, MySQL-AB JDBC Driver] for JDBC transaction
2013-11-04 23:41:14,376 [main] DEBUG DataSourceTransactionManager: Switching JDBC Connection [jdbc:mysql://localhost/jooq-learn, UserName=jooq@localhost, MySQL-AB JDBC Driver] to manual commit
2013-11-04 23:41:14,507 [main] DEBUG DataSourceTransactionManager: Initiating transaction rollback
2013-11-04 23:41:14,508 [main] DEBUG DataSourceTransactionManager: Rolling back JDBC transaction on Connection [jdbc:mysql://localhost/jooq-learn, UserName=jooq@localhost, MySQL-AB JDBC Driver]
2013-11-04 23:41:14,509 [main] DEBUG DataSourceTransactionManager: Releasing JDBC Connection [jdbc:mysql://localhost/jooq-learn, UserName=jooq@localhost, …
Run Code Online (Sandbox Code Playgroud)

java mysql spring transactions jooq

4
推荐指数
1
解决办法
1146
查看次数

在处理庞大的数据表时,我应该如何使用Hibernate Mapping

问题定义:
我有一个数据库表,包含大量数据(超过100,000行),表结构就像

AppID  DocID  DocStatus 
1      100    0
1      101    1    
2      200    0    
2      300    1
Run Code Online (Sandbox Code Playgroud)

每个applicationID可能有数千个文档,我必须获取状态为0的文档的计数和状态为1的文档的数量按applicationID分组.

当我使用hibernate映射这个对象时,由于大量的表数据,它会占用大量的堆内存.

如何使用Hibernate查询实现此目的? 或者我应该使用SQL查询或存储过程吗?

注意:我的Web应用程序位于JAVA/Tapestry框架中并使用Hibernate 3.数据库是SQL Server 2012.

java sql hibernate

4
推荐指数
1
解决办法
3295
查看次数

为什么我不能在informix子​​查询中首先使用

为什么我不能在子查询中首先使用select?这里我有一些伪选择引发异常:Cannot use 'first', 'limit' or 'skip' in this context.

我不明白为什么.我想先选择10个ID,然后选择此集合中的其他表行

select * from Table1 where ID in ( select  first 10  ID from Table2)
Run Code Online (Sandbox Code Playgroud)

我该如何重写这个选择?

sql informix

4
推荐指数
2
解决办法
7250
查看次数

在bash中实现每组排序的最高值

使用 bash,我想对列表进行排序和过滤,以仅保留每个次要版本(每个组)的最后一个补丁版本(最高值)。例如:

$ cat data | sort -Vr
3.10.1
3.10.0
3.3.10
3.3.2
3.3.1
3.2.0
3.1.0
3.0.3
3.0.2
3.0.1
3.0.0
Run Code Online (Sandbox Code Playgroud)

我想得到这个结果:

3.10.1
3.3.10
3.2.0
3.1.0
3.0.3
Run Code Online (Sandbox Code Playgroud)

怎么做?

bash scripting

4
推荐指数
1
解决办法
174
查看次数