oracle截取函数substr


oracle截取函数substr

【今日课堂】SQL系列第三讲:从条件查询到子查询,一网打尽!

亲爱的数据伙伴们,大家好!今天我们将继续深入探讨SQL的奥秘,带大家领略条件查询、文本处理、百分比、行数限制、格式化以及子查询的魅力。让我们一同启程,深入这个强大的数据库语言的世界吧!

一、条件查询

条件查询是SQL中的基础操作之一,它允许我们根据特定的条件过滤数据。常用的条件查询包括IF条件查询和CASE WHEN条件查询。

IF条件查询:使用IF函数,根据条件返回指定的值。例如:`SELECT IF(sva=1,'男','女') AS s FROM table_name WHERE sva != '';`

CASE WHEN条件查询:与IF类似,但更为灵活,可以联合各类聚合函数使用。例如:`SELECT CASE WHEN sva=1 THEN '男' ELSE '女' END AS s FROM table_name WHERE sva != '';`

二、文本处理

在SQL中,我们经常需要对文本数据进行处理,比如截取字符串、拼接字符串、替换字符串等。常用的函数包括SUBSTR()、CONCAT()、SPLIT()等。

SUBSTR():用于截取字符串。例如:`select substr('abcdefg',3,4) from dual;`结果是cdef。

CONCAT():用于拼接字符串。例如:`SELECT Concat(vend_name,' (',vend_country,')') FROM Vendors ORDER BY vend_name;`

SPLIT():用于分割字符串。例如:`split('a,b,c,d',',')[0]`结果是a。

三、百分比、行数限制与格式化

在SQL中,我们还可以进行一些特定的操作,如求百分比、限制行数、格式化数据显示等。

求百分比:使用percentile()或percentile_approx()函数求近似的第pth个百分位数。例如:`select percentile(mmr,0.3) as 30_percentile from match_table;`

限制行数:使用LIMIT语句限制返回的行数。例如:`select account_id,account_name from table limit 100;`

数据格式化:使用FORMAT()函数对字段的显示进行格式化。例如:`SELECT FORMAT(100.3465,2);`结果会是100.35。

四、子查询

子查询是SQL中的一个高级特性,它允许在一个查询中嵌套另一个查询。子查询可以用于条件过滤、作为计算字段等。

子查询条件过滤:例如,找出订单中包含产品ID为'RGAN01'的订单的客户ID。`SELECT cust_id FROM Orders WHERE order_num IN (SELECT order_num FROM OrderItems WHERE prod_id = 'RGAN01');`

子查询作为计算字段:例如,列出客户名称和客户所在州,以及该客户下的订单数量。`SELECT cust_name, (SELECT COUNT() FROM Orders WHERE Orders.cust_id = Customers.cust_id) AS orders FROM Customers ORDER BY cust_name;`

往期推荐:

SQL知识大全(一):数据库的语言分类你都知道吗?

史上最全的SQL知识点汇总,错过这次在等一年

数据岗知识体系及岗位介绍

分享数据知识,成就数据理想!


oracle截取函数substr