SQL优化之标量子查询,坑到你了吗?

关注我的微信公众号:pythonislover,领取python,大数据,SQL优化相关视频资料!~

Python大数据与SQL优化笔 QQ群:771686295

select a.object_id,(select b.username from t1 b where a.owner=b.username) from t2 a;

 

如上面select选项里面套select的格式就是标量子查询。

 

其实标量子查询最重要的一点就是要理解一个关键字 Filter

 

Filter分析单节点和双节点,这里说的就是双节点的Filter,这个有可能就是个性能隐患

 

SQL> create table a (id int,name varchar2(10));Table created.SQL> create table b (id int,name varchar2(10));Table created.SQL> insert into a values (1,'a1');1 row created.SQL> insert into a values (2,'a2');1 row created.SQL> insert in
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
可以将标量子查询嵌套在 SELECT 语句中作为一个列,然后在外部 SELECT 语句中选择该列。例如: ``` SELECT column1, (SELECT COUNT(*) FROM my_table WHERE column2 = 'my_value') as scalar_subquery FROM my_table WHERE column1 = 'another_value'; ``` 在上面的示例中,标量子查询 `(SELECT COUNT(*) FROM my_table WHERE column2 = 'my_value')` 返回一个值,该值作为一个名为 `scalar_subquery` 的列包含在结果集中。 如果你想要抓取标量子查询的 SQL 语句,可以使用以下方法: 1. 将标量子查询作为一个子查询,并将其结果集保存到一个临时表中,然后在外部查询中使用该临时表。例如: ``` CREATE TABLE temp_table AS SELECT COUNT(*) as count_value FROM my_table WHERE column2 = 'my_value'; SELECT column1, count_value FROM my_table, temp_table WHERE column1 = 'another_value'; ``` 在上面的示例中,第一个 SELECT 语句将标量子查询的结果集保存到一个名为 `temp_table` 的临时表中,然后在第二个 SELECT 语句中使用该临时表。 2. 使用变量来存储标量子查询的结果,并将该变量作为参数传递给外部查询。例如: ``` DECLARE @count_value INT; SELECT @count_value = (SELECT COUNT(*) FROM my_table WHERE column2 = 'my_value'); SELECT column1, @count_value FROM my_table WHERE column1 = 'another_value'; ``` 在上面的示例中,第一个 SELECT 语句将标量子查询的结果保存到一个名为 `@count_value` 的变量中,然后在第二个 SELECT 语句中使用该变量。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值