我是PL/SQL的新手。我在SELECT查询中使用了以下嵌套的CASE语句。这跟在WHERE子句之后。但是,由于这种嵌套,查询大约需要6分钟才能完成。如果至少删除了一个CASE块,则查询仅需大约1分钟即可完成。有什么方法可以优化这个查询吗?
(case
when a = 'STAGE PAYMENT' then
'Y'
when b not IN ('To be Received', 'Received') then
'N'
when c != (d - NVL(e, 0) - NVL(f, 0) - N
我在创建枢轴方面有问题,但首先,这里是我使用sets的所有数据结构:
我必须创建sql来获取这个中的数据。
我得用枢轴。
我很难计算出每组中有多少只猫是一种性别的。
这是我的SQL查询
SELECT "Banda","Plec", NVL(SZEFUNIO,0) as SZEFUNIO, NVL(BANDZIOR,0) AS BANDZIOR, NVL(LOWCZY,0) AS LOWCZY, NVL(LAPACZ,0) AS LAPACZ, NVL(KOT,0) AS KOT, NVL(MILUSIA,0) AS MILUSIA, NVL(DZIELCZY,
我一直在学习如何使用内部连接,所以我修改了下面的查询以使用内部连接,但是我在查询的最后一个片段上有问题,可以在那里使用内部连接吗?我有麻烦,因为"MOV“是在这个片段之前完成的查询.有人能帮我弄清楚怎么用吗?下面的查询工作正常,只是尽可能地改进它们
碎片:
FROM TBLMOVOBLIGACIONES MOV1
WHERE MOV1.STRMOVANOMES = :periodo
AND MOV1.STRCLINIT = MOV.STRCLI
我有一个季度产品按月平均销售额的汇总输出,如下所示:
汇总输出:
Product Month Sales
------------------------------
Product1 MAY 101.27
Product2 MAY 5.47
Product1 JUN 1481.19
Product2 JUN 84.95
ALL QTR 836.44
我需要以下格式的最终输出:
Product1 Product2 AverageSales
May 101.27
在我的第二行查询中,会出现错误Missing keyword并突出显示。我试图移除额外的案件,但仍在发生。
CASE WHEN NVL(BAT_WK02,0)>=NVL(TARGET_BAT,0) THEN
CASE WHEN NVL(RMO_ENTITLED_WK01,0)>0 THEN NVL(SKU_SALES_WK02,0) >= NVL(TARGET_SKU,0) THEN NVL (TARGET_SKU,0) * 1 ELSE NVL(SKU_SALES_WK02,0) *1
WHEN NVL(
请帮忙,我不知道如何用NVL函数得到两个数据之和,并将其显示为两个结果
期望产出:
Data, date, total no. of g column, total no. of u column
以下是一些查询:
SELECT 'Data'
||','||To_char(d.dtime_day, 'MM/dd/yyyy')
--我想得到这部分的总和
||','||NVL(g.POS, 0)
||','||NVL(g.Office, 0)
--我想得到这部分的总和
||','||NVL(
我想使用case语句更新两个列,请给我建议如何实现。
我试过下面这段代码,但是出现了语法错误:
UPDATE SASDB.TEMP_VALIDATE_FIN_ENTRIES
(CASE WHEN (LENGTH(TRIM(ACCOUNT_ID)) = 16
AND NVL(LENGTH(TRIM(TRANSLATE(UPPER(ACCOUNT_ID),'0123456789',' '))),0)=0
AND LENGTH(TRIM(S
我有一个场景,其中我有4列--子品牌、集合、PLCYCLE、COLORFAMILY,我必须为记录指定优先级:
如果它们都有有效值(不是空值或非空值)-优先级'1‘;
如果其中任何3个具有有效值(非空白或非空)-优先级'2‘;
如果其中任何2个具有有效值(非空白或非空)-优先级'3‘;
如果其中任何一个具有有效值(不是空值或非空值)-优先级'4‘。
写一个包含所有可能组合的案例语句是完成这个任务的唯一方法,还是有任何简单的方法?
样本代码:
CASE WHEN SUBBRAND IS NOT NULL AND COLLECTIONS IS
我有一张名为“测试”的桌子。一些字段具有空值。
Country City Street House
US NULL Avenue 14
UK London NULL 15
NULL NULL NULL NULL
NULL NULL Central 16
我需要只显示一个NULL的项目。
因此,产出应该是:
Country City Street House
US NULL Avenue 14
UK London NULL 15
我有一个愚蠢的解决方案,只需比较所有可能的列并检查NULL。
-这是在单个数据库表中进行比较的方法,如何在不同的数据库表上进行比较?
CREATE OR REPLACE PROCEDURE compareTwoTables is
BEGIN
FOR i in (SELECT column_name
FROM all_tab_columns
WHERE table_name = 'table2'
MINUS
SELECT column_name
FROM all_tab_columns
我有下表:
Table1
USER_ID NAME AGE GENDER ZIP_CODE
1 John 33 M 01086
2 NULL 22 M 01247
3 Brown NULL F 01581
我想在末尾添加一个位图作为列。
USER_ID NAME AGE GENDER ZIP_CODE NULL_COLUMN
1 John 33 M
行类型记录的表中没有数据,我尝试使用NVL放入空白数据,而不是捕获no data found错误。有什么办法可以解决这个问题吗?我正在尝试添加空白数据,而不是空数据。如果没有返回任何行,我该如何处理?
PROCEDURE Hi
is
final_qc_data psap20_internal_final_qc%rowtype;
begin
--gets the data
select
NVL(ENTITY_ID,''''), NVL(NAME,''''), NVL(ST_CODE,'''
表MEETINGPARTICIPANT如下,PK为ORGID,MEETINGID,PARTICIPANTID
Name Null? Type
------------------ -------- -------------
ORGID NOT NULL NUMBER(10)
MEETINGID NOT NULL VARCHAR2(32)
PARTICIPANTID NOT NULL VARCHAR2(32)
EMPLOYEEID NOT NULL VARC
当我运行这个查询时,由于某种原因,它应该在DAY列(210301,201302,SUM).But下显示3行结果,它只在DAY列下显示SUM行。想法是'201301‘行在1月份累积了31天的数据。有没有人能告诉我他们为什么不出现?
SELECT X.*
FROM
(
SELECT
(CASE
WHEN DAY.DAY = 'SUM' THEN DAY.DAY
ELSE
我在c#中有一个查询(使用Oracle命令和Oracle参数)。我想使用用户在从数据库中获取数据时输入的内容。 这是我的问题: SELECT USER_ID, FIRSTNAME, LASTNAME
FROM USERS
WHERE USER_ID LIKE :userid || '%'
AND FIRSTNAME LIKE :firstname || '%'
AND LASTNAME LIKE :lastname || '%'
AND DEPARTMENT LIKE :department || '%'
我想要一个标志输出的完全外部连接,在甲骨文说,from_table,这表明这是兄弟会在外部连接的表。
对于ex A,完全外部连接将给出A和B的并,即A中的所有行和B中的所有行,如果A中的某物在B中没有相应的基准,则B部分为空,反之亦然。
select * from a FULL OUTER JOIN b on a.a = b.b;
a | b
-----+-----
1 | null
2 | null
3 | 3
4 | 4
null | 6
null | 5
我需要以下产出:
a | b | from_table
-----+-
好的,继续学习动态sql,我现在尝试根据用户输入动态删除行。这是我在网上发现的代码
SET SERVEROUTPUT ON ;
SET TERMOUT ON;
SET ECHO OFF;
CREATE OR REPLACE PROCEDURE deleteProspect
(
v_cname IN CHAR DEFAULT NULL ,
v_make IN CHAR DEFAULT NULL ,
v_model IN CHAR DEFAULT NULL,
v_cyear IN CHAR DEFAULT NULL,
v_color IN CH
停留在一种逻辑上。我有4个变量,例如: var1,var2,var3,var4 (它们的值可以是null,至少有一个不是null)。现在,我想将它们的值指定为非空值。
I meant that if Var1 is null then Var1 = var2 or var3 or var4 (which ever is not null).
if Var2 is null then Var2 should be var1 or var3 or var4 which ever is not null.
Case: if var1=null,var2=x,var3=null,var4=y
exp
我正在尝试将值从另一个表插入到另一个表中。将任何可能的空值替换为'Undefined',并且我还创建了一个序列来填充我的一个列。我一直在第二行得到一个错误。
INSERT INTO PRODUCT_DIM
SELECT PRODUCT_SEQ.NEXTVAL AS PRODUCT_KEY,
NVL((PRODUCTID, PRODUCTDESCRIPTION, PRODUCTLINEID),'Undefined')
FROM PRODUCT_T;
我正在努力实现与NVL和NVL2的合并功能。它似乎与NVL合作得很好。然而,NVL2并没有给出想要的结果。我是不是错过了一些NVL2的东西。
NVL
WITH test_t
(col_1, col_2, col_3) AS
(select 'a', null, null from dual
union
select null,'b',null from dual
union
select null, null, 'c' from dual)
select nvl(nvl(col_1,col_2),col_3) from test_t;
它
我正在编写一个更新查询,它会给我带来错误,我想要做的是将一个值乘以它添加到另一个值。
原始语句
下面的陈述完美无缺,
UPDATE HOLIDAY_RESERVATION R SET SUBTOTAL =
NVL((SELECT F.FLI_PRICE FROM FLIGHT F WHERE F.FLI_ID = R.IN_FLIGHT_ID), 0) +
NVL((SELECT F.FLI_PRICE FROM FLIGHT F WHERE F.FLI_ID = R.OUT_FLIGHT_ID), 0) +
NVL((SELECT AC.ACC_PRICEPN FROM
我用C语言写了以下代码:
EXEC SQL begin declare section;
int A;
char B[5];
int C;
int D;
dtime_t E;
char F[13];
EXEC SQL END DECLARE SECTION;
char E_dt[16];
D=0;
memset(F, 0, sizeof(F));
EXEC SQL declare log3 cursor for select A, B, C, D, E, F from tbl WHERE
我试图让NVL工作的条件,根据输入的参数,但它不适用于CASE语句。当输入类型参数为“时数”时,我无法获得NVL(小时,0)>0条件运行,反之亦然
SELECT *
FROM hours_tbl
WHERE 1=1
AND
CASE
WHEN :type ='Hours' THEN Nvl(hours,0)>0
WHEN :type ='Earnings' THEN Nvl(hours,0)=0
ELSE Nvl(hours,0)&g
我有一个表,我必须在4列上连接它:
SELECT columns
FROM table t
LEFT JOIN other_table ot ON o.col1 = ot.col1
AND o.col2 = ot.col2
AND o.col3 = ot.col3
AND o.col4 = ot.col4
但是,如果other_table中的任何列为null,我希望将连接条件求值为true,而不考虑t中的另一列的值,例如,如果给定行的ot.col4为NULL,则在连接时只计算col1、col2和col3条件。
有什么想法吗?
我有三个用户在oracle上,他们有相同的表空间,当我运行以下查询时,在执行查询时会遇到以下问题。而且,在执行过程中需要花费大量的时间:
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
01652. 00000 - "unable to extend temp segment by %s in tablespace %s"
*Cause: Failed to allocate an extent of the required number of blocks for
a