如何在sql查询 - oracle 10g中用双引号(")替换单引号(')?
我使用此查询来获取属于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.
我有一个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) 我想从电子邮件ID中删除元音.我应该使用哪种功能?我试图找到translate和replacepostgresql 之间的区别,但没有得到确切的区别
我有一个叫做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.
在此先感谢您的帮助.
我想在我的程序中使用LEAST函数来找到最小的值.问题是某些值可能是NULL,所以如果我这样做
select least(NULL,0,1) from dual
Run Code Online (Sandbox Code Playgroud)
我得到的答案是NULL,这可能是正确的,不是我期望返回的东西.我想获得最不真实的非零值.任何帮助非常感谢.
因此,我经常需要将数据加载到保存表中以运行一些数据验证检查,然后返回结果.通常,我创建保存表,然后创建一个sqlldr控制文件并将数据加载到表中,然后运行我的查询.是否有任何理由我应该使用外部表格来代替?他们会以什么方式让我的生活更轻松?
我试图找出某个列是否需要TRIM函数.
如何确定表中的此列是否具有在实际数据之前或之后具有空格的记录.
我想执行一些这样的查询:
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魔法.
我在SQL中编写此查询:
select MAX(AVG(salary) ) from employees group by department_id;
Run Code Online (Sandbox Code Playgroud)
首先,我会得到小组department_id,但接下来会发生什么?