SQL技巧
学习中积累,工作中实践
木木夕呀~
这个作者很懒,什么都没留下…
展开
-
sql server递归简便用法,告别循环与数据库表多次连接的代码冗长
简单调用自身销量并循环计算的问题:已知2020年1月的销量和2020年2月-6月的环比,求一步到位求出2020年2月-6月的销量?2020年1月的销量2020年2月-6月的环比;with x1 as ( select '202002' dates,'-0.1532' value union all --2020年2-6月环比 select '202003','0.2417' union all select '202004','0.1325' union all sele原创 2020-08-05 20:56:57 · 364 阅读 · 1 评论 -
sql server中文字符与阿拉伯数字转化函数
CREATE FUNCTION [dbo].[Replace_WordFigure_to_Arabic]( @input nvarchar(1000), @tag int --tag=0表示大写数字转换为阿拉伯,=1表示阿拉伯转换为大写)RETURNS nvarchar(1000)ASBEGINdeclare @output nvarchar(1000)if @input like '%[0-9]%' and @tag=1begin set @output= rep...原创 2020-07-30 21:27:33 · 1830 阅读 · 1 评论 -
sql server在表字段里面循环运行公式(运用在计算电商产品规格数量等问题)
使用SP_EXECUTESQL方法--1、生成对应字段的计算公式drop table ##T1;with x1 as ( select row_number()over(order by id) ids,id,'select @t='+replace(replace(replace(replace(cc,'ml',''),'g',''),'x','*'),'×','*') sql from ( select id,title,replace(bb,substring(ctool.dbo.Ge原创 2020-07-20 22:15:47 · 806 阅读 · 1 评论 -
SQL SERVER通过特定符号对字符串循环切割,便于匹配或者行转列
方法1:使用with...as...和substring实现字段按行拆分操作--1、建立临时范例表drop table #tempcreate table #temp (seq int identity,names varchar(200))insert into #temp(names)values('A,B'),('男,女'),('XL码,L码,M码,S码'),('一线城市,二线城市,三线城市,四线城市')select * from #temp --生成需要拆分字段的数据表-原创 2020-07-20 16:07:51 · 1058 阅读 · 0 评论 -
Sql server逆向字符截取
Sql server中从字符串最后一个特殊字符截取到结尾使用reverse和charindex来实现。 (网上整理所得)reverse是把字符串倒置,然后通过charindex来获取倒置之后第一个特殊字符的位置,然后使用substring函数进行字符串截取,截取后再使用reverse倒置回来即可。例如:declare@strvarchar(20);set@str='语文、数学、英语';selectreverse(substring(reverse(@str),1,char...原创 2020-06-11 21:48:04 · 895 阅读 · 0 评论 -
SQL Server简单行转列操作
select * from table1 --行转列前格式select * from table2 --行专列后格式drop table table2declare @sql varchar(max)set @sql='select stype,newcate,cate'select @sql=@sql+',max(case month when '''+month+''' then cast(sales as numeric(20,2)) else 0 end)['+month+'_sa.原创 2020-06-08 20:22:15 · 208 阅读 · 0 评论