|
最新文章
|
知识管理交流
→『 技术文档交流 』
本版文数:12321 今日文数:6629
|
|
今天我们来学习SQLServer中自定义函数的用法,重点解决一个常见问题:如何让函数返回多个值。一、为什么要用自定义函数?真实需求场景有一个业务需求:处理带小数的数值,规则如下:14.2→返回15和0.8(整数部分+1,小数部分不变)14.0→返回14和0(整数部分不变,小数部分为0)如果在30个字段中都要重复写这段逻...
|
|
做数据分析的朋友,大概率都被同一个SQL需求虐过——产品经理甩过来一句:“帮我找出连续3天及以上下单的用户”,你脑子里瞬间有了思路,可一打开SQL编辑器,就卡壳了。明明是一句话能说清的逻辑,写出来却要嵌套好几层,还要用各种奇奇怪怪的技巧,甚至写完自己过两天再看,都想不起来为什么这么写。今天就用最通俗的话,把这件事讲透:...
|
|
今天分享一个动态SQL中的常见问题——如何将EXEC执行的结果存到变量里。一、问题场景动态SQL执行后,结果只显示在结果窗口,没法直接赋值给变量:DECLARE@sqlNVARCHAR(4000)SET@sql=SELECTCOUNT(*)FROMusersEXEC(@sql)--结果看得见,但拿不到二、解决方案:sp...
|
|
今天整理了30条SQL查询优化原则,每一条都是实战经验总结。用好它们,数据库性能提升立竿见影。一、索引相关(1-2)1.查询优化第一步:在WHERE和ORDERBY涉及的列上建立索引避免全表扫描,这是最基本也是最重要的原则。2.避免在WHERE子句中对字段进行NULL值判断--❌会放弃索引SELECTidFROMtWH...
|
|
在SQL的世界里,模糊查询(LIKE)是我们经常使用的功能,配合通配符%和_,可以灵活地查找数据。但是,当我们需要查找的字符串本身就包含%或_这些字符时,问题就来了——数据库会把它们当成通配符来处理,而不是我们想要查找的普通字符。这时候,ESCAPE关键字就派上用场了!它就像一把钥匙,能帮我们解开这个“特殊字符”的谜题...
|
|
今天分享一个SQLServer安装时的常见问题及解决办法。一、问题现象以前装过SQLServer,后来删掉了。现在重装,却弹出这个错误:“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机。”重启电脑?没用!重试好几次还是报错,安装无法继续。二、问题原因SQLServer卸载不干净...
|
|
今天分享一个DBA和开发人员必备的神器——查询表字段属性的SQL脚本。接手一个老项目,没有表结构文档?数据库表太多,想快速了解字段信息?写接口文档需要字段说明?这个脚本一键搞定!一、为什么需要这个脚本?项目交接:快速生成表结构文档接口开发:一次性获取所有字段信息数据库审计:检查字段属性是否规范代码生成:自动生成实体类问...
|
|
在SQL开发中,循环处理是常见的需求,但While循环如果使用不当,会严重影响性能。今天我们来深入探讨如何正确使用While循环,以及如何优化循环操作。一、While循环基础语法--基础语法DECLARE@counterINT=1DECLARE@maxCountINT=10WHILE@counter<=@maxCoun...
|
|
今天我们来学习如何在SQLServer中跨数据库访问数据,实现不同服务器之间的数据同步。一、跨数据库访问的三种方式方式适用场景配置复杂度性能OPENDATASOURCE临时访问简单一般链接服务器频繁访问中等较好OPENQUERY通过链接服务器中等较好二、方案方案一:使用OPENDATASOURCE(临时访问)CREAT...
|
|
今天我们来聊聊SQLServer中两种常用的表复制语句,让你轻松应对数据复制场景!一、一句话核心区别对比项INSERTINTOSELECTSELECTINTO目标表必须已存在自动创建适用场景追加数据到现有表快速备份、创建新表二、INSERTINTOSELECT:向已有表插入数据基本语法INSERTINTO目标表(字段1...
|
|
今天我们来深入探讨SQLServer中非常重要的话题——事务处理。掌握事务处理,让你的数据操作更加安全可靠!一、什么是事务?事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。简单理解:事务就像银行转账,要...
|
|
今天给大家整理了一些工作中常用到的SQL语句,特别是AS的用法,希望能帮助大家提升SQL查询效率!一、AS的用法详解AS关键字在SQL中主要用于为表或列指定别名,让查询结果更清晰易懂:--为列指定别名selectid,column1*column2as计算结果fromtable1--为表指定别名selecta.id,b...
|
|
在数据库开发中,排名需求无处不在——学生成绩排名、销售业绩排行、商品销量榜……SQLServer2005引入了四个强大的排名函数,让这些需求变得异常简单。今天我们就用一个实例,彻底搞懂这四个函数的区别和用法。准备测试数据首先创建一个订单表,包含订单ID和数量:createtablerankorder(orderidin...
|
|
在日常的数据库开发和报表制作中,我们经常需要将数字以千分位分隔的形式展示给用户,比如将2645433显示为2,645,433.00。这样不仅美观,更符合用户的阅读习惯。今天,我就为大家分享几种在MSSQL中实现数字千分位格式化的方法。方法一:使用自定义函数(灵活可控)首先,让我们来看一段由网友dobear_0922编写...
|
|
一、数据库创建与管理1.1创建文件包和数据库--启用xp_cmdshell以执行DOS命令execsp_configureshowadvancedoptions,1RECONFIGUREexecsp_configurexp_cmdshell,1RECONFIGURE--创建项目文件夹execxp_cmdshellmdd...
|
|
在日常需求中经常会有行转列的事情需求处理,如果不是动态的行,那么我们可以采取casewhen罗列处理。在sql2005以前处理动态行或列的时候,通常采用拼接字符串的方法处理,在2005以后新增了pivot函数之后,我可以利用这样函数来处理。1.动态SQL注入式判断函数--既然是用到了动态SQL,就有一个老话题:SQL注...
|
|
在日常的数据库开发工作中,我们经常遇到需要从混杂的字符串中提取特定类型字符的场景。比如从地址中提取中文、从订单号中提取数字、从用户输入中过滤出英文等。今天给大家分享一套实用的SQLServer自定义函数,帮助您轻松应对这些需求。一、提取中文字符函数:dbo.getCN这个函数利用Unicode编码范围(19968-40...
|
|
在复杂SQLServer项目中,开发者总会面临这个经典难题:该选择临时表、表变量还是公用表表达式(CTE)?本文将通过性能实测、使用场景与隐藏特性分析,助您做出明智决策。1.临时表:大数据集处理的扛把子临时表作为临时存储介质驻留在tempdb中,支持完整表操作:CREATETABLE#TempUsers(UserIdI...
|
|
作为开发者,日常和JSON打交道的场景实在太多了——接口调试、数据解析、日志查看……但每次面对一堆挤成一团的JSON字符串,或者手写的JSON格式不规范导致解析报错,都忍不住想吐槽。市面上虽然有不少在线JSON工具,但要么广告满天飞,要么功能太复杂,要么需要频繁切换网页,用起来总觉得不太顺手。
于是干脆自己动手,基于...
|
|
做运维或后端开发的同学,大概率都遇到过这样的糟心场景:用户反馈“下载文件到一半就断了”,自己用wget或curl测试,果然看到屏幕上反复出现HTTP206PartialContent,文件下了又断、断了又重试,折腾半天也拿不到完整文件。很多人第一反应是“客户端网络有问题”“用户操作不当”,但其实,这锅多半要Nginx代...
|
|
很多人写SQL,一碰到“分组后再取明细”“每组TopN”“累计求和”“同比环比”“取上一条/下一条记录”这类需求,就开始疯狂套子查询。结果通常是这样的:•SQL越写越长•逻辑一层套一层•自己第二天都不想看•性能还未必好说得难听点,很多子查询不是业务复杂,而是写法原始。如果你还在靠子查询硬凑这些分析型需求,那窗口函数大概...
|
|
UNION和UNIONALL,差了一个ALL。这个ALL省掉的,不只是一个关键字——是一整趟排序去重的成本。两个查询,逻辑一模一样:SELECTuser_idFROMordersUNIONSELECTuser_idFROMusers;SELECTuser_idFROMordersUNIONALLSELECTuser_i...
|
|
很多数据库问题,并不是“高并发架构”这种听起来很吓人的大场面搞出来的。真正把库拖慢、把业务搞崩、把同事逼疯的,往往是一些看起来没什么问题、实际上非常致命的SQL习惯。这些写法在测试环境里也许还能跑,在数据量小的时候也许没感觉,但一旦表变大、业务变复杂、并发上来,代价就会立刻显现:慢查询、锁表、索引失效、脏数据、误删、甚...
|
|
很多人一看到SQL跑得慢,第一反应就是:数据量太大了。这话有时候没错,但更多时候,它只是个看起来很合理的借口。真实情况往往更扎心:表不算大,机器也还行,索引甚至都建了,SQL还是慢。那问题多半不在“数据量”,而在SQL写法把数据库优化器整不会了。说得更直接一点:慢SQL,大多数不是“扛不住”,而是“写得烂”。今天这篇,...
|
|
如果你学SQL时总觉得窗口函数“看起来懂了,一写就废”,那不是你笨,是很多教程都没讲人话。它们喜欢先甩给你一串语法:OVER(PARTITIONBY...ORDERBY...),然后再贴几个例子,最后你记住了ROW_NUMBER(),却还是不知道什么时候该用、为什么好用。这一篇不绕弯,直接把SQL窗口函数最常用、最容易...
|