SQL Server 常用函数

一、字符串处理函数

1. CONCAT:拼接字符串

语法CONCAT(string1, string2, ..., stringN)
实例

SELECT CONCAT('Hello', ' ', 'World') AS Result;
 

输出

Result
-------------
Hello World
 

2. SUBSTRING:截取子字符串

语法SUBSTRING(string, start, length)
实例

SELECT SUBSTRING('SQL Server', 5, 6) AS Result;
 

输出

Result
-------
Server
 

3. CHARINDEX:查找子字符串位置

语法CHARINDEX(substring, string, [start])
实例

SELECT CHARINDEX('@', 'user@example.com') AS Position;
 

输出

Position
---------
5
 

4. REPLACE:替换字符串内容

语法REPLACE(input_string, old_substring, new_substring)
实例

SELECT REPLACE('2023-01-01', '-', '/') AS FormattedDate;
 

输出

FormattedDate
-------------
2023/01/01
 

二、数值计算函数

1. ROUND:四舍五入

语法ROUND(number, decimal_places)
实例

SELECT ROUND(123.4567, 2) AS RoundedValue;
 

输出

RoundedValue
------------
123.4600
 

2. ABS:取绝对值

语法ABS(numeric_expression)
实例

SELECT ABS(-15.5) AS AbsoluteValue;
 

输出

AbsoluteValue
-------------
15.5
 

3. RAND:生成随机数

语法RAND([seed])
实例

SELECT RAND() AS RandomValue; -- 0~1 之间的随机数
 

输出(示例):

RandomValue
-----------
0.715436
 

三、日期与时间函数

1. GETDATE:获取当前日期时间

语法GETDATE()
实例

SELECT GETDATE() AS CurrentDateTime;
 

输出(示例):

CurrentDateTime
---------------------
2023-10-05 14:30:45
 

2. DATEDIFF:计算日期差值

语法DATEDIFF(datepart, startdate, enddate)
实例

SELECT DATEDIFF(DAY, '2023-01-01', '2023-10-05') AS DaysDiff;
 

输出

DaysDiff
--------
277
 

3. DATEADD:日期加减

语法DATEADD(datepart, number, date)
实例

SELECT DATEADD(MONTH, 3, '2023-10-05') AS NewDate;
 

输出

NewDate
---------
2024-01-05
 

四、逻辑与条件函数

1. CASE:条件分支

语法

CASE WHEN condition1 THEN result1WHEN condition2 THEN result2ELSE default_result
END
 

实例

SELECT ProductName,CASE WHEN Price > 100 THEN 'High'WHEN Price > 50 THEN 'Medium'ELSE 'Low'END AS PriceCategory
FROM Products;
 

输出(示例):

ProductName   PriceCategory
---------------------------
Laptop        High
Mouse         Low
Monitor       Medium
 

2. COALESCE:返回第一个非 NULL 值

语法COALESCE(expression1, expression2, ..., expressionN)
实例

SELECT COALESCE(NULL, 'Fallback Value', 'Another Value') AS Result;
 

输出

Result
-------------
Fallback Value
 

3. IIF:简化条件判断

语法IIF(condition, true_value, false_value)
实例

SELECT IIF(10 > 5, 'Yes', 'No') AS Result;
 

输出

Result
------
Yes
 

五、聚合与窗口函数

1. SUM:求和

语法SUM(column)
实例

SELECT SUM(SalesAmount) AS TotalSales 
FROM Sales;
 

输出(示例):

TotalSales
----------
120000.00
 

2. ROW_NUMBER:生成行号

语法

ROW_NUMBER() OVER (ORDER BY column)
 

实例

SELECT ProductID,ProductName,ROW_NUMBER() OVER (ORDER BY Price DESC) AS Rank
FROM Products;
 

输出(示例):

ProductID   ProductName   Rank
-----------------------------
101         Laptop        1
103         Monitor       2
102         Mouse         3
 

3. STRING_AGG:分组拼接字符串

语法STRING_AGG(expression, separator) [WITHIN GROUP (ORDER BY column)]
实例

SELECT DepartmentID,STRING_AGG(EmployeeName, ', ') AS Employees
FROM Employees
GROUP BY DepartmentID;
 

输出(示例):

DepartmentID   Employees
------------------------
1              Alice, Bob
2              Charlie, David
 

六、系统与元数据函数

1. DB_NAME:获取当前数据库名

语法DB_NAME()
实例

SELECT DB_NAME() AS CurrentDatabase;
 

输出

CurrentDatabase
---------------
AdventureWorks
 

2. OBJECT_ID:获取对象 ID

语法OBJECT_ID('object_name')
实例

SELECT OBJECT_ID('dbo.Products') AS TableObjectID;
 

输出(示例):

TableObjectID
-------------
123456789
 

七、JSON 处理函数(SQL Server 2016+)

1. JSON_VALUE:提取 JSON 值

语法JSON_VALUE(json_string, '$.path')
实例

DECLARE @json NVARCHAR(MAX) = '{"name": "Alice", "age": 30}';
SELECT JSON_VALUE(@json, '$.name') AS Name;
 

输出

Name
-----
Alice
 

2. JSON_MODIFY:修改 JSON 内容

语法JSON_MODIFY(json_string, '$.path', new_value)
实例

DECLARE @json NVARCHAR(MAX) = '{"name": "Alice"}';
SELECT JSON_MODIFY(@json, '$.age', 30) AS UpdatedJSON;
 

输出

UpdatedJSON
------------------------
{"name": "Alice", "age": 30}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/80392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【通用大模型】Serper API 详解:搜索引擎数据获取的核心工具

Serper API 详解:搜索引擎数据获取的核心工具 一、Serper API 的定义与核心功能二、技术架构与核心优势2.1 技术实现原理2.2 对比传统方案的突破性优势 三、典型应用场景与代码示例3.1 SEO 监控系统3.2 竞品广告分析 四、使用成本与配额策略五、开发者注意事项六、替…

ABP vNext 多租户系统实现登录页自定义 Logo 的最佳实践

🚀 ABP vNext 多租户系统实现登录页自定义 Logo 的最佳实践 🧭 版本信息与运行环境 ABP Framework:v8.1.5.NET SDK:8.0数据库:PostgreSQL(支持 SQLServer、MySQL 等)BLOB 存储:本地…

FastDFS分布式文件系统架构学习(一)

FastDFS分布式文件系统架构学习 1. FastDFS简介 FastDFS是一个开源的轻量级分布式文件系统,由淘宝资深架构师余庆设计并开发。它专为互联网应用量身定制,特别适合以中小文件(如图片、文档、音视频等)为载体的在线服务。FastDFS不…

基于单片机的防盗报警器设计与实现

标题:基于51单片机的防盗报警器设计 内容:1.摘要 本文围绕基于51单片机的防盗报警器设计展开。背景在于现代社会安全需求不断提高,传统防盗方式存在诸多不足。目的是设计一款成本低、可靠性高且易于使用的防盗报警器。方法上,以51单片机为核心控制单元&…

IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 LiteOS Studio + GCC + JLink

文章目录 概述LiteOS Studio不推荐?安装和使用手册呢?HCIP实验的源码呢? 软件和依赖安装软件下载软件安装插件安装依赖工具-方案2依赖工具-方案1 工程配置打开或新建工程板卡配置组件配置编译器配置-gcc工具链编译器配置-Makefile脚本其他配置编译完成 …

【高斯拟合最终篇】Levenberg-Marquardt(LM)算法

Levenberg-Marquardt(LM)算法是一种结合高斯-牛顿法和梯度下降法的优化方法,特别适合非线性最小二乘问题,如高斯函数拟合。它通过引入阻尼因子(damping factor)平衡高斯-牛顿法的快速收敛和梯度下降法的稳定性。以下是基于之前的 gaussian_fit.py,加入 LM 算法实现高斯拟…

信道编码技术介绍

信息与通信系统中的编码有4 种形式:信源编码、信道编码、密码编码和多址编码。 其中信道编码的作用是对信源经过压缩后的数据加一定数量受到控制的冗余,使得数据在传输中或接收中发生的差错可以被纠正或被发现,从而可以正确恢复出原始数据信息…

线性回归策略

一种基于ATR(平均真实范围)、线性回归和布林带的交易策略。以下是对该策略的全面总结和分析: 交易逻辑思路 1. 过滤条件: - 集合竞价过滤:在每个交易日的开盘阶段,过滤掉集合竞价产生的异常数据。 - 价格异常过滤:排除当天开盘价与最高价或最低价相同的情况,这…

WordPress Relevanssi插件时间型SQL注入漏洞(CVE-2025-4396)

免责声明 本文档所述漏洞详情及复现方法仅限用于合法授权的安全研究和学术教育用途。任何个人或组织不得利用本文内容从事未经许可的渗透测试、网络攻击或其他违法行为。使用者应确保其行为符合相关法律法规,并取得目标系统的明确授权。 对于因不当使用本文信息而造成的任何直…

支持selenium的chrome driver更新到136.0.7103.94

最近chrome释放新版本:136.0.7103.94 如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only su…

附加:TCP如何保障数据传输

附加:TCP如何保障数据传输 LS-NET-012-TCP的交互过程详解 TCP 如何保障数据传输 TCP(Transmission Control Protocol,传输控制协议)是互联网核心协议之一,负责在IP网络上提供可靠的、面向连接的数据传输服务。它位于T…

Unity 批量将图片从默认类型改为Sprite类型

先将该脚本放到Editor目录下 如何使用:选中目录,然后点击Tool里面的批量修改按钮 using System; using UnityEngine; using UnityEditor; using System.IO; using System.Linq;/// <summary> /// 此工具可以批量将图片类型修改为精灵 /// </summary> public clas…

2025认证杯数学建模C题思路+代码+模型:化工厂生产流程的预测和控制

2025认证杯数学建模C题思路代码模型&#xff0c;详细内容见文末名片 在化工厂的生产流程中&#xff0c;往往涉及到多个反应釜、管道和储罐等设备。在 流水线上也有每个位置的温度、压力、流量等诸多参数。只有参数处于正常范 围时&#xff0c;最终的产物才是合格的。这些参数…

Rust 学习笔记:关于 HashMap 的练习题

Rust 学习笔记&#xff1a;关于 HashMap 的练习题 Rust 学习笔记&#xff1a;关于 HashMap 的练习题以下代码能否通过编译&#xff1f;若能&#xff0c;输出是&#xff1f;以下代码能否通过编译&#xff1f;若能&#xff0c;输出是&#xff1f; Rust 学习笔记&#xff1a;关于 …

Vue-事件修饰符

事件修饰符 prevent &#xff08;阻止默认事件&#xff09; 超链接 点击事件 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>事件修饰符</title><!-- 引入Vue --><script …

LeetCode --- 156双周赛

题目列表 3541. 找到频率最高的元音和辅音 3542. 将所有元素变为 0 的最少操作次数 3543. K 条边路径的最大边权和 3544. 子树反转和 一、找到频率最高的元音和辅音 分别统计元音和辅音的出现次数最大值&#xff0c;然后相加即可&#xff0c;代码如下 // C class Solution {…

告别 pip:使用 uv 加速你的 Python 包管理

使用 uv:更快的 Python 包管理工具 随着 Python 生态的演进,包管理工具也在不断升级迭代。uv 是 Astral(同样维护 ruff 的团队)推出的下一代 Python 包与项目管理器,主打 单一可执行文件、极致性能,可在多数场景下取代 pip、pip-tools、pipx 与 virtualenv 等传统工具,…

MATLAB学习笔记(七):MATLAB建模城市的雨季防洪排污的问题

使用 MATLAB 对城市雨季防洪排污问题进行建模与仿真&#xff0c;需要结合数学模型、工程经验和 MATLAB 的数值计算、数据可视化及优化工具。以下是详细的步骤指南&#xff0c;包含实际案例和代码示例&#xff1a; 一、问题分析与建模框架 1. 问题拆解 • 核心目标&#xff1a; …

以项目的方式学QT开发C++(二)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!

API 描述 函数原型 参数说明 push_back() 在 list 尾部 添加一个元素 void push_back(const T& value); value &#xff1a;要添 加到尾部的元 素 这个示例演示了如何创建 std::list 容器&#xff0c;并对其进行插入、删除和迭代操作。在实际应用中&am…

08 web 自动化之 PO 设计模式详解

文章目录 一、什么是 POM二、如何基于 POM 进行自动化框架架构&#xff1f;1、base 层封装2、pageobjects 层封装3、TestCases 层封装 三、元素和方法分离&数据分离1、哪些部分可以进行分离2、示例代码 四、总结 一、什么是 POM POM page object model 页面对象模型 WEB 自…