我正在尝试执行左连接,以便从左表中获取所有行,即使这些行的连接条件不成立。
示例:下面的 Aid = Bid 但表 B 只有 3 个 id
我正在使用的查询仅给出连接条件为真的行。即使连接条件不成立,有没有办法从左表中获取所有行?
我的查询:
SELECT Table1.Aid,
Table2.Bid,
Table2.Issueid
FROM Table1
LEFT JOIN Table2 ON Table1.Aid = Table2.Bid;
WHERE Table2.Issueid IN (
'a',
'b'
)
Run Code Online (Sandbox Code Playgroud) 在这里,我再次使用一些PLSql ..
我想知道,如果有任何方法我可以使用以下函数,如select而不必将其转换为函数或过程(因此我可以从包含它的脚本中看到代码).
代码如下:
DECLARE
outpt VARCHAR2(1000) := '';
flow_rI VARCHAR2(50);
CURSOR flow_r IS
select flow_run_id
from table
where CREATED_DATE < sysdate - 32
and rownum < 10
order by 1 desc;
BEGIN
OPEN flow_r;
LOOP
FETCH flow_r INTO flow_rI;
EXIT WHEN flow_r%notfound;
BEGIN
outpt := outpt || ',' || flow_rI;
EXCEPTION
WHEN no_data_found THEN
dbms_output.Put_line(outpt);
END;
END LOOP;
dbms_output.Put_line(outpt);
outpt := '';
CLOSE flow_r;
END;
Run Code Online (Sandbox Code Playgroud)
这个想法很简单,我只想从我那里得到一系列代码,table
但是结果的格式就像是"1234,2434,424,45,767,43"
一种东西,而不是查询的表格结果.它将在稍后的代码中用于各种目的,包括我可以简单地执行的另一个查询in ([variable with that string])
.
事情是,使用dbms_output.Put_line(outpt);
,我无法从我的应用程序层访问它,似乎在plsql我不能使用 …
我需要在dbms_output语句中包含单引号.我试过这个:
dbms_output.put_line('\''first_name||'\'');
Run Code Online (Sandbox Code Playgroud)
这里first_name是variable
; 我需要在单引号内显示这个.
我已经运行了这个查询:
SELECT
OWNER,
TABLE_NAME,
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH,
(CASE
WHEN DATA_PRECISION IS NULL THEN 0
ELSE DATA_PRECISION
END) DATA_PRECISION,
(CASE
WHEN DATA_SCALE IS NULL THEN 0
ELSE DATA_SCALE
END) DATA_SCALE,
NULLABLE,
COLUMN_ID
DEFAULT_LENGTH,
DATA_DEFAULT,
(CASE
WHEN DATA_DEFAULT IS NULL THEN '0'
ELSE DATA_DEFAULT
END) DATA_DEFAULT1
FROM
all_tab_columns
WHERE
table_name LIKE 'TABLE1';
Run Code Online (Sandbox Code Playgroud)
但它在 column 引发错误DATA_DEFAULT
:
ORA-00932:不一致的数据类型:预期的 CHAR 得到了 LONG
00932。00000 - “不一致的数据类型:预期的 %s 得到了 %s”
我该如何解决?
谢谢!
我在plsql中有点新,所以你能告诉我它存在一种否定案例的方法吗?我的意思是,这样:
select CASE DENOM_CURRENCY_CODE
WHEN != 'MXN' THEN 'convert to USD'
ELSE TO_CHAR(QUANTITY) --keep the quantity
END
Run Code Online (Sandbox Code Playgroud)
我收到了这个消息"ORA-00936:缺少表达"我也试过"<>"和"不是".谢谢阅读
这是一个简单的查询: select * from customers
当我在PL/SQL Developer中编写此查询并按F5时,我会看到解释计划,但我不知道成本,基数和字节代表什么.
我应该如何迭代这样的对象表?
CREATE TYPE SOME_OBJECT AS OBJECT (
ATTR1 VARCHAR2(20)
, ATTR2 VARCHAR2(30)
);
/
CREATE TYPE C_SOME_OBJECT AS TABLE OF SOME_OBJECT;
/
Run Code Online (Sandbox Code Playgroud)
而且...我想将其用作过程的参数。必须在程序中初始化它吗?
PROCEDURE SOME_PROCEDURE(OBJECT IN C_SOME_OBJECT)
IS
BEGIN
--Some code here iterating IN parameter
END;
Run Code Online (Sandbox Code Playgroud) 我有超过 1000 个视图,我想运行一个搜索,该搜索将显示abc
在其 SQL 中包含字符串的视图的名称。如何搜索所有存储过程/SQL,包括我的视图?当我运行命令时:
SELECT *
FROM all_source
WHERE text LIKE '%abc%'
Run Code Online (Sandbox Code Playgroud)
它返回我abc
存在字符串的源代码。但这不包括视图。
我已经搜索过,但没有找到任何关于它的详细信息。在http://www.oracle.com/technetwork/java/javafx/downloads/index.html它说
从 JDK 7u6 开始,JavaFX 包含在标准 JDK 和 JRE 包中
但是我在编译代码包含javafx.*
包时出错。包不是成立的。我正在使用 Oracle JDK 10.0.2 和 Intellij Idea 2018.2。添加$JAVA8_HOME/jre/lib/ext/jfxrt.jar
as 库后,代码就可以工作了。
但奇怪的是,我能够构建代码以针对字节码版本 8,而无需像上面那样添加来自 JDK 8 的 jar 文件。
所以问题是
如何获得最新的 JavaFX?
最新的 JavaFX 是否在 JDK 8 中?
JDK 10 包含 JavaFX 并在命令行中成功编译和运行。Intellij IDEA 2018.2 有问题。它无法识别 JavaFX 包。
Intellij 中的错误消息:
错误:(3, 26) java: 包 javafx.application 不存在
注意:在编辑器中编码时没有错误(不为红色)。在 Intellij 中编译时发生错误。
更新了问题标题。
我想为我的 SQL 披萨餐厅数据库创建一份“销售报告”。当我尝试使用 sum(order_amount) 运行 SELECT 查询时,该列未格式化。我正在使用 Oracle SQL。这是代码:
column order_amount heading "Order Amount" format '$9,999,999.00';
select order_id, count(order_id) as "Number of Orders", sum(pizza_quantity) as "Pizzas Sold",
sum(order_amount) as "Total Profit"
from order_details group by order_id;
Run Code Online (Sandbox Code Playgroud)
这是输出:
SQL> select order_id, count(order_id) as "Number of Orders",sum(pizza_quantity) as "Pizzas Sold",
2 sum(order_amount) as "Total Profit"
3 from order_details group by order_id;
Order ID Number of Orders Pizzas Sold Total Profit
---------- ---------------- ----------- ------------
1 2 5 105
6 1 2 20 …
Run Code Online (Sandbox Code Playgroud)