我有一个非常简单的查询,但是我需要它,如果Conditional小于2,那么Title应该显示为所有大写
SELECT DISTINCT Title, COUNT(Title) AS NumberOfTitles
FROM Table
WHERE Conditional < 3
GROUP BY Title
ORDER BY Title
我试过CASE等,但似乎能让它起作用
如果条件=1,我还需要将标题设置为'MAIN‘
我希望像ORACLE上的条件一样使用计数结果,就像oracle上的伪代码一样:
select count(d.number_people) as counted_people
from dual d
if counted_people = 1 then
dbms_output.put_line('Have just one people on this column.'
end if;
这个语法是错误的,我知道,我怎么做它正确的方式?
我正在尝试将一些Oracle查询转换为Postgres,并遇到了listagg。
Oracle代码
select max(eta) eta, mso_id, listagg(carrier_name, ',')
within group (order by eta) as carrier
from tb_flight_schedule group by mso_id;
我发现Postgres与listagg的等价物是string_agg,于是开始用string_agg交换listagg。但是,我遇到了错误(错误:函数string_agg(字符变化,未知,日期)不存在)。我在
有办法在JPA中选择不同的trim(addressInfo.city)吗?
我得到了这个错误(没有修剪它工作得很好)
Caused By: java.sql.SQLSyntaxErrorException: ORA-01791: not a SELECTed expression
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.d
我有一个Oracle SQL查询:
SELECT * FROM
(SELECT SO_ORDER_KEY,QUEUE_TYPE,SYS_NO,
DENSE_RANK() OVER (PARTITION BY SO_ORDER_KEY ORDER BY SYS_NO DESC) ORDER_RANK
FROM TSY940)
WHERE ORDER_RANK=1;
在中运行时,它返回所需的结果。
由于某些原因,当我在kafka-connect属性中使用此查询时,我将得到
ERROR Failed to run query for table TimestampInc
这个简单的示例表将说明递归关系..。
CREATE TABLE tree
(
key NUMBER(5) NOT NULL PRIMARY KEY,
name VARCHAR(15) NOT NULL,
treeHier NUMBER(5)
);
INSERT INTO tree VALUES('11','Software',NULL);
INSERT INTO tree VALUES('22','OS','11');
INSERT INTO tree VALUES(
我在Oracle和MySQL数据库中发现了一种有趣的行为。我将接着介绍Oracle示例。
CREATE TABLE t(a int, b int);
INSERT INTO t VALUES(3, 3);
INSERT INTO t VALUES(2, 2);
INSERT INTO t VALUES(1, 1);
SELECT SUM(a)
FROM t
ORDER BY b;
我希望查询在ORA-00979: not a GROUP BY expression中失败,但它成功并返回了6。从技术上讲,查询中没有GROUP BY表达式,但存在聚合,因此假定为空GROUP BY ()。您甚至
在Oracle中,首先计算哪些子句类型?如果我有以下条件(假装... )表示有效的表达式和关系名称),那么计算的顺序是什么?
SELECT ...
FROM .....
WHERE ........
GROUP BY ...........
HAVING .............
ORDER BY ................
我的印象是SELECT子句是最后评估的,但除此之外,我一无所知。
这个问题似乎被打死了,但我找不到解决我处境的办法。在Oracle SQL Developer中,我编写了以下查询,并且我知道它在语法上是正确的(或者它至少检索我需要它的数据)。
select QUERY.SETID, COUNT(QUERY.GENEID)
from QUERY, G2
where QUERY.GENEID = G2.GENEID group by QUERY.SETID
order BY COUNT(QUERY.GENEID) DESC;
我把它翻译成了我的Java程序,如下所示。
String query = "select QUERY.SETID, COUNT
需要将以下Oracle查询迁移到to,但出现以下错误:
ORDER子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP、偏移量或FOR XML。
Oracle可以无错误地处理下面的代码。
取消订单一点帮助都没有。
SELECT CREATIONDATE, TITLE, SUM(myindex) over (ORDER BY CREATIONDATE ROWS UNBOUNDED PRECEDING) AS cumula
FROM (
SELECT CREATIONDATE, TITLE, 1 as myindex
FROM CONTENT
WHERE CONTENT
我对Oracle非常陌生,所以我对ROWNUM语句并不完全熟悉。我正试着从我的桌子上得到最新的4篇文章。我得到了4个结果,但它们是2012年的文章,即使我的日期排序设置为DESC。任何帮助都会很好。
Oracle查询:
SELECT bt.article_id, ba.*
FROM articles_types bt
LEFT JOIN blog_articles ba
ON ba.article_id = bt.article_id
WHERE ROWNUM < 5
ORDER BY Published DESC
我似乎不明白为什么我的查询不能运行。我怀疑问题出在where条款中,但我不知道为什么。
SELECT COUNT(PRODUCT_ID), PRODUCT_ID
FROM ORDER_ITEMS
WHERE 'COUNT(PRODUCT_ID)' > 6
GROUP BY PRODUCT_ID
ORDER BY COUNT(PRODUCT_ID) DESC;
我从Oracle : ORA-01722:无效编号中得到了这个错误。
谢谢!
我使用一个类似于发布的查询,以给定的顺序获取对象列表。
我还有两个环境,一个使用MySQL,另一个使用Oracle。在MySQL中,答案中给出的HQL (这里发布以供参考)运行良好,但是当切换到Oracle时,它会转换为无效的相同结果SQL。
select q from Question q where q.id in (:ids) ORDER BY FIELD(id, :ids)
所以我想扩展Oracle10gDialect,并提供转换成符合Oracle标准的SQL:
select q.id
from
Question q
我通常使用MS SQL。我有一段代码,我可能需要将其转换为Oracle SQL。在这段代码中,我为每一行更新了两个变量,以便找到并发用户数的最大值。
我的问题是,是否有可能像Oracle中的MS SQL代码一样执行下面的操作?
-- The creation of this test table is not relevant to my question.
-- It is just there to make a working example
SELECT {ts '2012-09-03 10:12:00'} AS eventTime, 1 AS change
INTO
Oracle子句和order by子句不同,则where未标识索引
INNER JOIN ORG_ACCOUNTING_PERIODS p
ON p.ORG_ROADMARK = c.ORG_ROADMARK
AND p.ACCOUNTING_PERIOD = c.SERVICE_PERIOD
where ( c.ORG_ROADMARK =:roadMark )
and c.ORG_ROADMARK = c.move_road
ORDER BY EVENT_DATETIME;
我“继承”了一个数据库应用程序(基于Oracle 10g数据库并用Delphi编写),它必须做出以下几个决定:
Do Query1.
If the result set is empty, do Query2.
这些查询是具有相同输出列的SELECT查询,有时类似(案例1),有时不同(案例2)输入(从)和条件(其中)。
案例1:有时的区别是:col like 'x' (或col like 'x'= 'x')变成col like '%'。
性能:最好使用两个不同的查询(col = 'x'和另一个没有它的查询)。
我想根据它们的内容来计数多个列。我想计数的每一列(alpha,bravo和charlie)都有'T‘或'F',我只想数那些带有'T’的列。
到目前为止,我已经:
select t1.name, count(t1.alpha), count(t1.bravo), count(t1.charlie)
from t1
where alpha='T',
or bravo='t'
or charlie='t'
group by name
order by name asc;
然而,如果我参加竞选,我得到的数字与我
我有一个引擎来构建一个查询。所以这不是静态的,这就是为什么我要走这条路(下面)。另外,它适用于SQL和Oracle (Oracle添加了不同的包装器、RowNum等)。我没有简单的方法来测试Oracle,但是下面是Server的问题,一步一步的逻辑。
让我们进行一个简单的查询。
Select field1 as f1, myDate dateFld From table1 t1 Where t1.field2 = 1
我可能有,也可能没有,必须使用另一个表进行union输出。
Select field1, myDate dateFld as f1 From table1 t1 Where t1
我有一个要求,我打算从Oracle DB中获取重复的记录,以便模拟我们有重复记录的场景。
因此,我决定使用union_all。
select column1 from tbl where rowid in (select rowid from tbl where rownum<=5)
union all
select column1 from tbl where rowid in (select rowid from tbl where rownum<=5)
order by column1;
--works
但是,当尝试获取所有列时,
select * from tbl wh
这是我的代码,当使用prepareStatement动态发送rq时速度非常慢 for (int i = 0; i < 1; i++) {
String sql = "select KHDM from T_KHZHYKQK where khdm= '10797684' and zjzhlxdm = '0' and rq >= '20191230' and rq <= '20210104' order by rq";
String sql2 = "select KHDM fr
我需要将SQL Server查询转换成Oracle,有人能帮忙吗?
WITH e AS
(
SELECT *,
ROW_NUMBER() OVER
(
PARTITION BY fname
ORDER BY dojoin DESC
) AS Recency
FROM Dept
WHERE deptno= 55
)
SELECT *
FROM e
WHERE Recency = 1
ORDER BY fname
示例数据如下:
date value
2015-09-09 1
2015-09-08 2
2015-09-07 3
2015-09-04 4
2015-09-03 5
我需要计算每个日期和之前两天的sum值,所以结果应该会出现:
2015-09-09 6 --sum value of 2015-09-09, 2015-09-08, 2015-09-07
2015-09-08 5 --sum value of 2015-09-08, 2015-09-07
2015-09-07
下面是Server中的一个SQL语句
SELECT
a.EMPNUM,
(SELECT TOP 1 NAMEKO
FROM PA0001
WHERE COMPCD = a.COMPCD
AND EMPNUM = a.LASTUP
ORDER BY EDDATE DESC) AS LASTNM,
(SELECT TOP 1 NAMEKO
FROM PA0001
WHERE COMPCD = a.COMPCD
AND EMPNUM = a.FRSTUP
ORDER BY
在Oracle 12.1.0.2和Oracle 19c中,此查询:
with test_data (c1, c2) AS (
SELECT 'A', 1 FROM DUAL UNION ALL
SELECT 'B', 2 FROM DUAL UNION ALL
SELECT 'C', 3 FROM DUAL )
SELECT c1, c2*-1 c2
FROM test_data
order by c2*-1;
返回:
+
换句话说,ORDER BY c2*-1中的ORDER BY c2*-1引用选择列表中的c2列别名,而不是数据库表中的
一段时间以来,我一直在尝试查找是否可以在select语句中使用前面声明的别名,如果它可以在稍后用于Oracle SQL的case语句中使用的话。我发现的大多数结果都是关于如何基于case语句创建Alias的,这不是同一个问题。下面是一个简单的例子:
Select TABLEA.SomeIDNumber AS "Id",
case ID
when 3
then 'foo'
else 'bar'
end AS "Results"
FROM OMEG
我有一个oracle查询,其中我需要在同一窗口中使用多个分析函数。如何定义一个窗口,然后将其用于这些调用中的每一个?
也就是说,我想把它写成像PostGRESql一样:
SELECT
sum(salary) OVER w,
avg(salary) OVER w
FROM empsalary
WINDOW w AS (PARTITION BY depname ORDER BY salary DESC);
忘了提一下,目标是避免代码重复,而不是加快查询速度。
我正在尝试使用Oracle N查询来获取行数,在按dClass DESC排序后,将递增的数字分配给STUD表中的每一行。
select studName, dClass,row_number() over (order by dClass desc) rn
from STUD where row_number() over (order by dClass desc) <= 3 order by dClass desc;
下面是错误
ERROR at line 6:
ORA-30483: window functions are not allowed here.
在这里,我有什么变化