sql语句基本写法和函数

关于sql语句基本写法和函数

连表修改

第一种

表B查询符合条件,然后根据id连表修改表A的某行或者多行记录
update A as a, B as b
set a.name = b.simple_name
where a.key1 = “project_name” and a.project_code=“scsc_project”

第二种

根据id边表修改
用左连接来,表B查询符合条件,然后根据id连表修改表A的某行或者多行记录(两张表)
update A as a left join B as b on a.id =b.id set a.name= b.name where a.key ="XX " and b.key ="XX "

第三种(两张以上的表)
这一种是先统计出数据,然后根据id来连表修改,这种是用于两张表以上的统计出来数据,然后在修改
update A as a left join (select id ,name,key from C where key =“XX” ) as B on a.id =b.id set a.name= b.name where a.key ="XX " and b.key ="XX " ;

一种数据格式转换成另一种格式

CAST()
例子:
SELECT CAST(‘9.0’ AS decimal) 结果:9

多个字符串合并

concat()
例子:
SELECT CONCAT(’My’, ‘S’, ‘QL’);

字段合并成一列,中间用,分开

GROUP_CONCAT(user_id) 合成1,2,3

自定义日期中类型, 中间可以自定符号,自定义获取年月日

DATE_FORMAT(planned_completion_time,’%Y%m%d’)

ROUND 四舍五入

例子:
SELECT ROUND(column_name,decimals) FROM table_name;

IFNULL() 判断第一参数为空,第一参数为空就返回第二参数,反正返回第一参数

SELECT IFNULL(NULL, “RUNOOB”);

数据库建表 有以下问题,
1)是否 这种字段 要 以is开头
2)字段名 因为不够字见其意/有问题,建议使用百度翻译 + 百度百科,典型的案例如下
exploit_cycle 开发周期
stall_estimated_price 车位预估售价
else_project_condition 其他规划条件

SQL中实现数据透视的效果,主要是通过 `CASE` 表达式配合聚合函数(如 `SUM()` 或 `COUNT()` 等)来完成。以下是具体的写法说明及示例: --- ### SQL 数据透视的基本思路 1. **确定行维度**:选择用于分组的字段。 2. **列出列维度**:明确需要转换为列的具体值。 3. **计算汇总值**:对每个行列组合应用适当的聚合操作。 常见做法是使用 `PIVOT` 关键字(支持的部分数据库如 SQL Server),或者通过 `CASE WHEN` 的方式手动构造透视效果。 --- ### 示例场景 假设有一个销售数据表 `sales`,包含以下字段: - `region`: 地区名称 (例如 北京、上海) - `product`: 产品类别 (例如 A, B, C) - `amount`: 销售金额 #### 目标: 按照地区分组,并将产品的销售额分别显示为独立列(北京-A、北京-B... 上海-A...) #### 写法一:使用 CASE + 聚合函数 ```sql SELECT region, SUM(CASE WHEN product = 'A' THEN amount ELSE 0 END) AS Product_A, SUM(CASE WHEN product = 'B' THEN amount ELSE 0 END) AS Product_B, SUM(CASE WHEN product = 'C' THEN amount ELSE 0 END) AS Product_C FROM sales GROUP BY region; ``` 解释: - 对于每种产品 (`A`, `B`, `C`) 分别检查是否匹配当前行的产品类型; - 若匹配则取其对应的销售量并累加;若未匹配,则视为零贡献。 --- #### 写法二:使用 PIVOT (适用于 SQL Server) 如果您的数据库系统支持 PIVOT 操作符,那么代码会更简洁明了: ```sql SELECT * FROM ( SELECT region, product, amount FROM sales ) AS SourceTable PIVOT ( SUM(amount) FOR product IN ([A], [B], [C]) ) AS PivotTable; ``` 这里的关键点在于从内层子查询提取出基本三要素(region/product/amount),再由外层声明如何进行旋转操作以及哪些列为新的头部标识。 --- ### 总结 以上就是两种主流的SQL语句出“透视”的方法。其中一种较为通用但略显繁琐些——运用case when结合group by达成目的;另一种针对特定环境下提供的专用功能pivot更为直观高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值