SQL进阶(3)-拼接&子查询
拼接:将值联结到一起购成单个值
使用的操作符:+或||(Microsoft Access 、SQL Sever使用+号,其他数据库软件可能使用||)
MySQL中,不支持+或||,而是用CONCAT( )函数把项表拼接
计算字段 拼接:将值联结到一起购成单个值 使用的操作符:+或||(Microsoft Access 、SQL Sever使用+号,其他数据库软件可能使用||) MySQL中,不支持+或||,而是用CONCAT( )函数把项表拼接起来,使用CONCAT( ),上述例子的代码为: 例子: Find the capital and the name where the capital includes the name of the country. SELECT capital,name FROM world where capital like concat('%',name,'%') 注意,MySQL中会将上述%识别为通配符,而不是百分号 MySQL中的||等同于操作符OR,而&&等同于操作符AND COUNT(*):对表中行的数目进行计数,包括空值; COUNT(column):对特定列中具有值的行进行计数mssql 空值,忽略NULL值;即,若指定列名,则指定列的值为空的行被COUNT()函数忽略,但如果是COUNT( )函数中用的是星号*,则不忽略。 对所有的行执行计算,指定ALL参数或不给参数(因为ALL是默认行为); 只包含不同的值,指定DISTINCT参数; Microsoft Access 不支持DISTINCT参数; DISTINCT参数不能用于COUNT(*) 例子: SELECT AVG(DISTINCT prod_price) AS avg_price FROM Products WHERE vend_id='DLL01'; 此代码旨在计算不同价格的平均值。如,有3个数:1,1,2;按照ALL,计算的平均值为:4/3,按照DISTINCT,计算的平均值为:1 WHERE子句过滤行,HAVING子句过滤列或者说WHERE 在数据分组前过滤,HAVING在数据分组后过滤; 仅在与GROUP BY子句结合时,才使用HAVING。 在语句书写中直观表现为:having中只对聚合函数做限制和过滤 子查询:嵌套在其他查询中的查询 利用子查询进行过滤,注意:作为子查询的SELECT语句只能查询单个列 例如: SELECT cust_name,cust_contact FROM Customers WHERE cust_id IN (SELECT cust_id FROM Orders WHERE order_num IN(SELECT order_num FROM OrderItems WHERE prod_id='RGAN01')); 作为计算字段使用子查询 SELECT cust_name,cust_state, (SELECT COUNT(*) FROM Orders WHERE Orders.cust_id=Customers.cust_id) AS orders FROM Customers ORDER BY cust_name; (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |