我有一个select声明
SELECT *
FROM TABLENAME
WHERE WORKERNAME = 'A'
AND DATE = '12/17/2014'
Run Code Online (Sandbox Code Playgroud)
输出将是:
FREE | USED | DATE | WORKERNAME
------------------------------------
1 | 0 |12/17/2014 | A
1 | 0 |12/17/2014 | A
1 | 0 |12/17/2014 | A
Run Code Online (Sandbox Code Playgroud)
我需要有一个输出,其中输出DATE和WORKERNAME将是列标题,如下所示:
A
----------
12/17/2014
----------
FREE | USED
----------
1 | 0
1 | 0
1 | 0
Run Code Online (Sandbox Code Playgroud)
有人可以建议如何使用oracle SQL或PL/SQL实现这一目标吗?
我在Oracle Exadata上运行以下查询.
Oracle Database 11g企业版11.2.0.4.0版 - 64位生产,具有分区,Real Application Clusters,自动存储管理,OLAP,数据挖掘和Real Application Testing选项
select sum (t.sum_edw_trx_cnt)
from (
select max(x.edw_trx_cnt)sum_edw_trx_cnt,
x.prctr_cell_nbr
from p_prctr_smpl_pf_sp3 x
where mdld_prctr_flg = 'Y'
)t;
Run Code Online (Sandbox Code Playgroud)
我期待oracle返回错误 - 因为你可以看到group by内部查询"t"中没有子句,我期待这个查询失败.
有数百万条记录,每个prctr_cell_nbr我想要最大计数,然后外部查询应该总结每个的最大计数prctr_cell.这是一个简单的查询.但是,查询运行并112从内部查询返回其输出为最大计数.
我对此行为感到困惑,因为这不是查询返回的正确结果.我不认为这是一种已知行为,最近有人见过这个吗?
谢谢
给出下一个 SQL 语句:
Select *
from A join B
on A.id1=B.id1 and
A.id2=B.id2
where A.year=2016
and B.year=2016
Run Code Online (Sandbox Code Playgroud)
并且知道 tableA比 table 小得多B,所以我需要数据库首先按A年份访问表,然后加入,然后按B年份过滤表,我的问题是:
为提高性能而创建索引是否有意义B?(id1,id2,year)
非常感谢!
我正在尝试使用精确的过程签名来调用API,但不知何故,我认为不能正确识别的数字表.
API定义:
TYPE NUMLIST IS TABLE OF NUMBER INDEX BY VARCHAR2(50);
PROCEDURE GETSERVICES_API
(
I_DIMOBJID IN NUMBER, I_OBJECTID IN NUMBER, I_FILTER IN NUMBER,
O_ERRORCODE OUT NUMBER, O_ERRORTEXT OUT VARCHAR2, O_SERVICELIST OUT NUMLIST
);
Run Code Online (Sandbox Code Playgroud)
我对API的要求:
DECLARE
TYPE NUMLIST IS TABLE OF NUMBER INDEX BY VARCHAR2(50);
lt_SERVICELIST NUMLIST;
ls_errortext varchar2(100);
ln_errorcode number;
BEGIN
PKGCOMSUPPORT_SERVICE.GETSERVICES_API(I_DIMOBJID => 6,
I_OBJECTID => 5263,
I_FILTER => 3,
O_ERRORCODE => ln_errorcode,
O_ERRORTEXT => ls_errortext,
O_SERVICELIST => lt_SERVICELIST);
END;
Run Code Online (Sandbox Code Playgroud)
当我运行我的API调用时,我得到:PLS-00306:调用'GETSERVICE_API时参数类型的数量错误
知道为什么吗?谢谢
我有以下查询.如何保持撇号(')完整,而不是让它被替换为&apos
还有其他字符我也想处理&
SELECT RTRIM(xmlagg(XMLELEMENT(E,'I''m'||':')).extract('//text()'),':')
FROM dual;
Run Code Online (Sandbox Code Playgroud)
输出:
I'm
Run Code Online (Sandbox Code Playgroud)
谢谢.
我一直试图找到问题所在,但我只是运气不好,根本不理解这个问题.我有以下代码:
CREATE OR REPLACE FUNCTION ckeckDay(dateC in date)
RETURN VARCHAR
IS
day VARCHAR(15);
checkFriday VARCHAR(1);
BEGIN
checkFriday := 'N';
day := to_char(dateC, 'DAY');
IF day = 'FRIDAY' THEN
checkFriday := 'Y';
END IF;
RETURN day;
END;
/
Run Code Online (Sandbox Code Playgroud)
将dateC被设置为周五(甚至通过返回测试它day的替代day变量,它返回周五).然而,IF声明从不计算真实的,即使day变量确实Friday.Any想法如何去解决这个issue.Thanks
我有一个web api post方法,在我的Oracle数据库中的表中插入一个新行.我遇到了表的主键,这是一个序列值.我如何my_primary_key_seq.nextval在Entity Framework中做?目前此代码有效,但当通过旧的.net webform插入新行时,它将违反PK唯一约束,该webform使用序列下一个值作为下一个主键.
decimal nextPK = context.FORMPPs.OrderByDescending(p => p.PPID).FirstOrDefault().PPID + 1;
item.PPID = nextPK;
context.FORMPPs.Add(item);
int result = context.SaveChanges();
Run Code Online (Sandbox Code Playgroud) 我有一个xml代码:
<begin>
<entry>
<lastname>gordon</lastname>
<NumberList>
<number>100</number>
<codelist>
<code>213</code>
<code>214</code>
<codelist>
<login>
<user>user1</user>
<user>user2</user>
</login>
<NumberList>
<address>
<addresslist>Jl. jalan pelan-pelan ke Bekasi, Indonesia</addresslist>
</address>
</entry>
<entry>
<lastname>mark</lastname>
<address>
<addresslist>Jl. jalan cepet-cepet ke Jakarta, Indonesia</addresslist>
</address>
</entry>
</begin>
Run Code Online (Sandbox Code Playgroud)
我的代码:
FOR r IN (SELECT VALUE(p) col_val,
EXTRACT(VALUE(P), '/entry/codelist') AS code,
EXTRACT(VALUE(P), '/entry/login') AS login
FROM TABLE(XMLSequence(Extract(x,'/begin/entry'))) p)
LOOP
IF r.col_val.existsnode('/entry/lastname/text()') > 0
THEN
vc_lastname := r.col_val.extract('/sdnEntry/lastname/text()').getstringval();
END IF;
IF r.col_val.existsnode('/entry/address/addresslist/text()') > 0
THEN
vc_address := r.col_val.extract('/sdnEntry/address/addresslist/text()').getstringval();
END IF;
IF r.col_val.existsnode('/entry/codelist/id/code/text()') > 0 AND …Run Code Online (Sandbox Code Playgroud) 查询1:
SQL> select nanvl(to_char(2),0) a from dual;
A
---
2
Run Code Online (Sandbox Code Playgroud)
QUERY2:
SQL> select nanvl(to_char(2),null) a from dual;
A
-----
Run Code Online (Sandbox Code Playgroud)
怀疑:
为什么第一个查询返回2?我0在查询2中期待.我很困惑.请解释让我理解.
当我尝试运行此查询时,我得到上述错误.有人可以帮我这个
UPDATE CCO.ORDER_CREATION
SET "Doc_Date" = 8/9/2013
WHERE "Document_Number" IN (3032310739,3032310740,3032310738)
Run Code Online (Sandbox Code Playgroud)