sql 某列左侧补0

WITH temp
AS ( SELECT Month
FROM dbo.test
GROUP BY MONTH
)
SELECT RIGHT(CONCAT( '00',MONTH) , 2)
FROM temp

 

原理就是先拼出满长度的字符串在用right或者left函数切成指定需要的字符串

用加号拼接容易出坑

select ‘010'+1返回11

select ‘ss'+1返回报错

用cancat拼接不会出现这种问题

转载于:https://www.cnblogs.com/liziqiang/p/7112479.html

### SQL Inner Join 与 Outer Join 的区别 #### 定义差异 Inner Join 是一种用于获取两个表中满足特定条件的交集部分的数据操作。这意味着只有当两表中的记录存在匹配项时才会返回结果[^1]。 Outer Join 则不仅会返回那些有对应关系的结果,还会保留左表、右表或是两侧表格里不匹配的部分数据。具体来说,在 LEFT JOIN 中如果右边表缺少关联,则会在相应位置填充 NULL;而在 RIGHT JOIN 下则是左边缺失则 NULL;至于 FULL OUTER JOIN 将同时展示两边可能存在的空缺情况[^2]。 #### 使用场景对比 对于 Inner Join 来讲,适用范围主要是为了找到共同特征或者交叉点上的信息集合。例如查询某段时间内既购买过商品又发表评论过的用户表就可以采用这种方式来实现。 而 Outer Join 更多地应用于统计分析以及报表生成等领域。比如要查看所有客户订单详情的同时也想知道哪些顾客还没有下单——这时就非常适合运用 LEFT 或者 RIGHT JOIN 进行处理[^4]。 #### 示例说明 假设有一个 `employees` 表和一个 `departments` 表: | employee_id | name | |-------------|----------| | 1 | Alice | | 2 | Bob | | 3 | Charlie | | department_id | dept_name | |---------------|-----------------| | 1 | Sales | | 2 | Engineering | 再假设有如下员工部门分配关系(employee_department): | emp_dept_id | employee_id | department_id | |-------------|-------------|---------------| | 10 | 1 | 1 | | 11 | 2 | 2 | ##### Inner Join 示例 ```sql SELECT e.name, d.dept_name FROM employees AS e INNER JOIN employee_department ed ON e.employee_id = ed.employee_id JOIN departments d ON ed.department_id = d.department_id; ``` 这将只显示已知所属部门的雇员名单及其对应的部门名称。 ##### Left (Outer) Join 示例 ```sql SELECT e.name, COALESCE(d.dept_name,'No Department') as dept_name FROM employees AS e LEFT JOIN employee_department ed ON e.employee_id = ed.employee_id LEFT JOIN departments d ON ed.department_id = d.department_id; ``` 此命令可以出全部职员的名字连同他们所隶属的具体科室名,若有未指派的情况将以 "No Department" 填充代替。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值