整个问题几乎都在标题中.对于表的每一行,我想选择列的子集的最大值.
例如,从此表中
name m1 m2 m3 m4
A 1 2 3 4
B 6 3 4 5
C 1 5 2 1
Run Code Online (Sandbox Code Playgroud)
结果将是
name max
A 4
B 6
C 5
Run Code Online (Sandbox Code Playgroud)
查询必须与oracle 8i兼容.
说到 Oracle,我是一个初学者。我无法弄清楚如何做类似的事情:
SELECT ID, NAME, TO_CHAR(DATEBIRTH, 'DD/MM/YYYY HH24:MI:SS')
FROM PEOPLE WHERE DATEBIRTH >= ANOTHERDATE - NDAY
Run Code Online (Sandbox Code Playgroud)
简而言之,我想选择在特定日期和时间前 N 天出生的每个人,但我不太确定这是这样做的方法,也不确定它会给我期望的结果。
PS:我是在oracle8i下开发的。
我正在研究一些有时需要连接到oracle 8.1.7数据库的软件,有时需要连接到oracle 10g数据库才能执行一些查询.
连接到8.1.7数据库时,我需要使用ojdbc14.jar驱动程序和10g数据库的ojdbc6.jar驱动程序.
当这两个驱动程序都在类路径中时,似乎自动驱动程序选择不够智能,无法选择正确的驱动程序,有什么方法可以指定我的代码中哪一个是首选的?
我目前没有使用任何连接池或类似的抽象,但如果需要引入类似的东西也不会有问题.
鉴于此查询:
select distinct subject_key
from mytable
Run Code Online (Sandbox Code Playgroud)
结果:
subject_key
-----------
90896959
90895823
90690171
90669265
90671321
Run Code Online (Sandbox Code Playgroud)
如何在Oracle中编写查询(使用Aqua Data Studio后端Oracle 8i)结果:
subject_key
-----------
90896959,
90895823,
90690171,
90669265,
90671321
Run Code Online (Sandbox Code Playgroud)
谢谢大家!我是否希望改变输出而不是如下所示.我怎么写它,同一个平台.谢谢.
subject_key
90896959, 90895823, 90690171, 90669265, 90671321
Run Code Online (Sandbox Code Playgroud) 在jdbc中,如何检查,我们正在使用oracle 8i数据库?
我在这里看到一些解决方案来检查包中的过程,但它们只适用于oracle 9或10+.
但是有可能在Oracle 8i中进行此检查吗?在Oracle 8中,您没有DBA_PROCEDURES或类似的东西.
任何帮助都会很棒.
我有一个在where子句中使用REGEXP_LIKE函数的SQL,现在我需要相当于将在Oracle 8i中运行的函数.
正则表达式看起来像这样:
where REGEXP_LIKE(parm, '^[PMF][[:digit:]]+[_].*')
Run Code Online (Sandbox Code Playgroud)
提前致谢.
以下代码基于AskTom的一个流行线程,导出为CSV
我用内部循环中的一些代码修改了原始脚本来处理嵌入的逗号和引号字符.
我无法在Oracle 8i上编译它.
我使用DBA Studio设置utl_file_dir的值.然后我使用SQL*Worksheet运行脚本.报告的错误表明第46行是问题所在.
CREATE OR REPLACE PROCEDURE dump_table_to_csv
( p_tname IN VARCHAR2,
p_dir IN VARCHAR2,
p_filename IN VARCHAR2 )
IS
l_output utl_file.file_type;
l_theCursor INTEGER DEFAULT dbms_sql.open_cursor;
l_columnValue VARCHAR2(4000);
l_status INTEGER;
l_query VARCHAR2(1000) DEFAULT 'select * from ' || p_tname;
l_colCnt NUMBER := 0;
l_separator VARCHAR2(1);
l_descTbl dbms_sql.desc_tab;
l_quote VARCHAR2(1);
BEGIN
l_output := utl_file.fopen( p_dir, p_filename, 'w', 32760 );
-- adjust date so the format is compatible with the target system
-- in this case, PostgreSQL 9 …
Run Code Online (Sandbox Code Playgroud) 我尝试使用带有减号、点和其他一些符号的列名称。Oracle SQL 解析器不会排除它们。像这样:
select
a.ID as Article-Number, a.Name as Name
from
Articles a
where
(a.ID = '3264')
Run Code Online (Sandbox Code Playgroud)
而且它也不例外a.ID as 'Article-Number'
(说"FROM keyword not found where expected"
)。列名中可以包含符号吗?
感谢stackoverflow社区,我发现由于CASE WHEN,Oracle 8i不支持此查询.
select (case
when seqnum = 1 then
'1'
when seqnum = cnt then
'0'
end) as value1,
(case
when seqnum = 1 then
t.BEGIN_DT
when seqnum = cnt then
t.END_DT
end) as TIME1,
t4.UNIT1 || '.SUBBATCH_TRIGGER' TAG
from (select t.*,
row_number() over(partition by t.BATCH_ID, t.plant_unit, t3.ID2 order by t.BEGIN_DT) as seqnum,
count(*) over(partition by t.BATCH_ID, t.plant_unit, t3.ID2) as cnt
from SCH2.tb_pg_unit_stap t
join (select ID1,batch_id from SCH2.VW_BATCH) t2 on t.BATCH_ID = t2.BATCH_ID
join (select ID2,ID1 from SCH1.STEP) …
Run Code Online (Sandbox Code Playgroud)