小编Dav*_*dge的帖子

如何在sql查询中用双引号替换单引号 - oracle 10g?

如何在sql查询 - oracle 10g中用双引号(")替换单引号(')?

sql oracle

12
推荐指数
2
解决办法
8万
查看次数

查找与Oracle表关联的序列和触发器

我使用此查询来获取属于Oracle数据库用户的序列列表:

SELECT * FROM all_sequences x,all_tables B
WHERE x.sequence_owner=B.owner AND B.TABLE_NAME='my_table';
Run Code Online (Sandbox Code Playgroud)

但是该数据库用户也有更多的序列,因此查询返回数据库用户的所有序列.任何人都可以帮我找到my_table使用查询的特定顺序,以便我可以在我的应用程序中获取自动增量ID.

oracle

11
推荐指数
2
解决办法
8万
查看次数

如何将排序移动到数据库级别

我有一个Rails应用程序,它使用postgresql作为数据库,按位置对不同类型的用户进行排序,然后根据网站上各种活动收到的信誉点进行排序.这是一个示例查询

 @lawyersbylocation = User.lawyers_by_province(province).sort_by{ |u| -u.total_votes }
Run Code Online (Sandbox Code Playgroud)

该查询在User.rb模型上调用范围lawyers_by_province:

 scope :lawyers_by_province, lambda {|province|
  joins(:contact).
  where( contacts: {province_id: province},
         users: {lawyer: true})

  }
Run Code Online (Sandbox Code Playgroud)

然后,仍然在User.rb模型上,它计算他们拥有的声誉点.

 def total_votes
    answerkarma = AnswerVote.joins(:answer).where(answers: {user_id: self.id}).sum('value') 
    contributionkarma = Contribution.where(user_id: self.id).sum('value')
    bestanswer = BestAnswer.joins(:answer).where(answers: {user_id: self.id}).sum('value') 
    answerkarma + contributionkarma + bestanswer
 end
Run Code Online (Sandbox Code Playgroud)

我被告知如果网站达到一定数量的用户,那么它将变得非常慢,因为它在Ruby而不是在数据库级别进行排序.我知道注释是指total_votes方法,但我不确定lawyers_by_province是在数据库级别还是在ruby中发生,因为它使用Rails帮助程序来查询数据库.看起来像两者兼而有之,但我不确定这对效率的影响.

你能告诉我如何写这个,以便查询发生在数据库级别,因此以更有效的方式不会破坏我的网站?

更新以下是total_votes方法中模型的三种方案.

 create_table "answer_votes", force: true do |t|
    t.integer  "answer_id"
    t.integer  "user_id"
    t.integer  "value"
    t.boolean  "lawyervote"
    t.boolean  "studentvote"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  add_index "answer_votes", ["answer_id"], name: "index_answer_votes_on_answer_id", using: :btree
  add_index "answer_votes", ["lawyervote"], name: "index_answer_votes_on_lawyervote", …
Run Code Online (Sandbox Code Playgroud)

postgresql performance ruby-on-rails

10
推荐指数
1
解决办法
938
查看次数

Postgres - 从字符串中删除一组字母

我想从电子邮件ID中删除元音.我应该使用哪种功能?我试图找到translatereplacepostgresql 之间的区别,但没有得到确切的区别

postgresql

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

如何将Oracle Timestamp值从当前更新为过去的时间戳

我有一个叫做Oracle的桌子EVENT_TABLE_T.它有一个名为的列LAST_UPDATE_DT.此列中的一个示例值是:01-JUL-13 11.20.22.37448900 AM.有超过700行具有相同的时间戳值.我想使用SQL语句将此值更新为此日期之前的45天.例如,01-JUL-13 11.20.22.37448900 AM在我的心算之后,应该成为:( 15-May-13 11.00.00......恰好45天).如果这是成功的,我想对不同的值应用更新,LAST_UPDATE_DT这反映了可以追溯到46天的值.

我希望通过提出这个问题来实现的目的是能够学习Oracle日期和时间戳的基础知识,并将它们应用到我的批处理工作中.我希望能够从Oracle SQL Developer以及Java内部运行此更新sql语句PreparedStatement.

在此先感谢您的帮助.

sql oracle

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

Oracle SQL中的最小值但不是NULL

我想在我的程序中使用LEAST函数来找到最小的值.问题是某些值可能是NULL,所以如果我这样做

select least(NULL,0,1) from dual
Run Code Online (Sandbox Code Playgroud)

我得到的答案是NULL,这可能是正确的,不是我期望返回的东西.我想获得最不真实的非零值.任何帮助非常感谢.

sql oracle

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

外部表与SQLLoader

因此,我经常需要将数据加载到保存表中以运行一些数据验证检查,然后返回结果.通常,我创建保存表,然后创建一个sqlldr控制文件并将数据加载到表中,然后运行我的查询.是否有任何理由我应该使用外部表格来代替?他们会以什么方式让我的生活更轻松?

oracle external-tables sql-loader

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

Oracle - 使用前导或尾随空格查找值

我试图找出某个列是否需要TRIM函数.

如何确定表中的此列是否具有在实际数据之前或之后具有空格的记录.

sql oracle

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

将子查询结果列合并到单个列中,然后在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万
查看次数