小编Dav*_*dge的帖子

将子查询结果列合并到单个列中,然后在ORDER BY中使用

我想执行一些这样的查询:

SELECT 
    folders.*, 
    (SELECT 
        files.filename 
     FROM 
        files 
     WHERE 
        files.folder_id = folders.id 
    ) 
    as files 
FROM 
        folders 
ORDER BY 
    files[column name of filename]
Run Code Online (Sandbox Code Playgroud)

子查询可能会给出多于1个结果,因此我想将结果加入到单个列文件名中.

我正在使用Postgres.我添加了Rails作为标记,因为你可能会建议一些可以处理这个问题的Rails魔法.

postgresql ruby-on-rails-3.2

6
推荐指数
1
解决办法
5663
查看次数

嵌套聚合函数,Max(Avg()),在SQL中

我在SQL中编写此查询:

select MAX(AVG(salary) ) from employees group by department_id;
Run Code Online (Sandbox Code Playgroud)

首先,我会得到小组department_id,但接下来会发生什么?

sql

6
推荐指数
2
解决办法
3万
查看次数

SQL*Plus 中的“@”有什么作用

我在 sql 代码中找到了这一行:

@../../sql_scripts/create_tables.sql
Run Code Online (Sandbox Code Playgroud)

它有什么作用?我知道这@@file.sql意味着 file.sql 正在运行,并且@可以在我们以后想要提供参数值时使用,但在这里我@后面跟了一个文件名。我知道有一个类似的问题,但它只涵盖@查询。

sql oracle sqlplus

5
推荐指数
1
解决办法
463
查看次数

Heroku上的rails database.yml文件的生产条目

只是查看我的Rails 4应用程序的database.yml文件,发现生产数据库没有任何设置 - 只有测试和开发数据库.

我实际上没有任何问题,但希望通过发布此问题来避免其他潜在问题.

在本地我使用PG数据库,我也使用PG数据库在Heroku上托管我的应用程序.

我是否应该在yml中为生产数据库文件设置一些设置,因为我真的不确定?

ruby-on-rails heroku ruby-on-rails-4

5
推荐指数
2
解决办法
4417
查看次数

运行liquibase脚本时无效的字符

当我在Sql Developer中运行下面的脚本时,它正确地创建了我的全局临时表,但是当我运行liquibase脚本时,由于"无效字符"而失败.谁知道为什么会失败?

在Sql Developer中(作品)

 CREATE GLOBAL TEMPORARY TABLE TransactionsToMove(
              TransactionId NUMBER(38,0) NOT NULL,
              PRIMARY KEY (TransactionId))
              ON COMMIT DELETE ROWS;
Run Code Online (Sandbox Code Playgroud)

Liquibase xml(以下堆栈跟踪失败)

<changeSet id="createGlobalTemporaryTableForTransactionsMove" author="me" >
    <preConditions onFail="MARK_RAN">
        <not>
            <tableExists tableName="TransactionsToMove"/>
        </not>
    </preConditions>
    <sql splitStatements="false" endDelimiter=";"><![CDATA[              
      CREATE GLOBAL TEMPORARY TABLE TransactionsToMove(
          TransactionId NUMBER(38,0) NOT NULL,
          PRIMARY KEY (TransactionId))
          ON COMMIT DELETE ROWS;
    ]]>
    </sql>
</changeSet>
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪

    SEVERE 2013-11-14 09:10:liquibase: Error executing SQL CREATE GLOBAL TEMPORARY TABLE TransactionsToMove(
              TransactionId NUMBER(38,0) NOT NULL,
              PRIMARY KEY (TransactionId))
              ON COMMIT …
Run Code Online (Sandbox Code Playgroud)

sql oracle liquibase

5
推荐指数
1
解决办法
4927
查看次数

Oracle嵌套块和异常处理

DECLARE
    string_of_5_chars VARCHAR2(5);
BEGIN
    BEGIN
        string_of_5_chars := 'Steven';
    EXCEPTION
        WHEN value_error THEN
          RAISE no_data_found;
        WHEN no_data_found THEN
          dbms_output.Put_line ('Inner block');
    END;
EXCEPTION
    WHEN no_data_found THEN
      dbms_output.Put_line ('Outer block');
END; 
Run Code Online (Sandbox Code Playgroud)

答案说输出将是"外部块",有人可以解释为什么内部块不会被执行吗?oracle中异常的优先级是什么?

oracle plsql oracle11g

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

Ruby:冻结数组中的字符串是否也应该单独冻结?

Ruby 2.2.3,Rails 4.2.1

我有很多字符串数组,它们定义为在整个应用程序中使用的常量。它们是各种不同的ISO国家/地区代码,语言代码之类的东西,所以是2到4个字符,每个数字都有数百个唯一值。

不同的数组是这些数组的集合,因此NORTH_AMERICA_COUNTRY_CODES可能是一打这样的国家代码的数组,AFRICA_COUNTRY_CODES可能是大约60的数组。它们很多重叠(例如,英联邦国家的不同版本)。

将该数组与其他国家/地区代码的任意数组进行比较,以进行逻辑比较,例如“从非洲减去此国家/地区列表”。

所以我想知道在生成这些常量时,是否应该冻结数组中的字符串,因此,而不是:

WORLD_COUNTRIES = Countries.pluck(:country_code).freeze
Run Code Online (Sandbox Code Playgroud)

... 也许 ...

WORLD_COUNTRIES = Countries.pluck(:country_code).map{|c| c.freeze}.freeze
Run Code Online (Sandbox Code Playgroud)

有没有一种量化潜在利益的方法?

我考虑使用符号数组而不是字符串数组,但是这些符号数组所使用的任意数组都存储在PostgreSQL文本数组中,似乎我需要对这些列进行序列化,或者覆盖getter和setter方法在字符串数组和符号数组之间更改值。啊。

编辑

测试结果,其中我尝试对三种情况进行基准测试:

  1. 将冻结的未冻结字符串数组与未冻结的未冻结字符串数组进行比较
  2. 将冻结的冻结字符串数组与未冻结的未冻结字符串数组进行比较
  3. 将冻结的符号数组与未冻结的符号数组进行比较(以防万一,我咬住了子弹并对此进行了所有符号化处理)。

对方法论或解释的任何想法都深表感谢。我不确定前两个结果之间的相似性是否表明它们在所有方面都是相同的,但是我希望能够直接指出内存分配差异的任何事物。

脚本:

require 'benchmark'

country_list             = ["AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", …
Run Code Online (Sandbox Code Playgroud)

ruby arrays string ruby-on-rails

5
推荐指数
1
解决办法
337
查看次数

将Excel日期编号更改为Oracle日期

41293在oracle 有约会,我怎样才能以DD/MON/YYYY格式显示它?

如果我复制粘贴在Excel中并将其更改为日期格式,它显示01/19/13 请帮助我.

oracle oracle10g oracle11g

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

COMMIT做什么?

我想了解以下两个陈述之间的区别:

insert into table_name values (,,,,,);
Run Code Online (Sandbox Code Playgroud)

insert into table_name values (,,,,,);
commit;
Run Code Online (Sandbox Code Playgroud)

sql oracle

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

如何将Order BY放在SQL UNION中,以便TOTALS始终显示为最后一行?

我有SQL UNION,其中该语句的第二部分是代表TOTALS的行.我怎样才能将TOTALS总是显示为最后一行?

sql oracle

3
推荐指数
2
解决办法
7663
查看次数