【SQL server速成之路】函数

(3)LEFT函数


LEFT ( character_expression , integer_expression ) 

功能:返回从字符串character_expression左边开始,由integer_expression指定个数的字符。参数character_expression:为字符型表达式,integer_expression:为整型表达式,返回值为varchar型。

【例】 返回书名最左边的 10 个字符。


SELECT LEFT(书名, 10) FROM bookORDER BY ISBNGO

(4)LTRIM函数


LTRIM ( character_expression )

功能:删除character_expression字符串中的前导空格,并返回字符串。参数character_expression为字符型表达式,返回值类型为varchar。

【例】 使用 LTRIM 字符删除字符变量中的起始空格。


DECLARE @string varchar(40)SET @string = '    中国,一个古老而伟大的国家'SELECT  LTRIM(@string)

(5)REPLACE函数


REPLACE (string_expression1,string_expression2,string_expression3)

功能:用第三个字符串表达式替换第一个字符串表达式中包含的第二个字符串表达式,并返回替换后的表达式。

【例】 用 REPLACE实现字符串的替换。


DECLARE @str1 char(20),@str2 char(4),@str3 char(20)SET @str1='数据库原理'SET @str2='原理'SET @str3='概论'SET @str3=REPLACE (@str1, @str2, @str3)SELECT @str3

(6)SUBSTRING函数

语法格式:


SUBSTRING ( expression , start , length ) 

功能:返回expression中指定的部分数据。参数expression可为字符串、二进制串、text、image字段或表达式;Start、Length均为整型,前者指定子串的开始位置,后者指定子串的长度(要返回的字节数)。如果 expression 是字符类型和二进制类型,则返回值类型与expression的类型相同,在其它情况下,参考下表。

在这里插入图片描述

【例】 如下程序在一列中返回xs表中的姓氏,在另一列中返回表中学生的名。


SELECT SUBSTRING(姓名, 1,1), SUBSTRING(姓名, 2, LEN(姓名)-1)FROM xsORDER BY 姓名

(7)STR函数

语法格式:


STR ( float_expression [ , length [ , decimal ] ] ) 

功能:将数字数据转换为字符数据。参数float_expression为float类型的表达式,Length用于指定总长度,包括小数点,Decimal指定小数点右边的位数,Length、Decimal必须均为正整型。返回值类型为char。

【例】 如下程序用于查询ISBN号978-7-111-21382-6书籍的书名和库存量。


DECLARE @str char(80)SET @str=(SELECT 书名 FROM book WHERE ISBN='978-7-111-21382-6 ') + '库存量' + STR((SELECT 库存量 FROM book WHERE ISBN='978-7-111-21382-6 '))SELECT @str

3.系统函数


系统函数用于对SQL Server中的值、对象和设置进行操作并返回有关信息。

(1)CASE函数

CASE有两种使用形式:一种是简单的CASE函数,另一种是搜索型的CASE函数。

① 简单的 CASE 函数。语法格式:


CASE input_expression                 WHEN when_expression THEN result_expression […n ][ ELSE else_result_expression  ]END

功能:计算input_expression表达式之值,并与每一个when_expression表达式的值比较,若相等,则返回对应的result_expression表达式之值;否则返回else_result_expression表达式的值。

② 搜索型的CASE 函数。语法格式:


CASEWHEN Boolean_expression THEN result_expression […n ][ ELSE else_result_expression]END

功能:按指定顺序为每个 WHEN 子句的 Boolean_expression 表达式求值,返回第一个取值为 TRUE 的 Boolean_expression 表达式对应的 result_expression表达式之值;如果没有取值为TRUE的Boolean_expression表达式,则当指定 ELSE 子句时,返回 else_result_expression 之值;若没有指定 ELSE 子句,则返回 NULL。

【例】 使用CASE函数对读者按性别分类。


/*使用带有简单 CASE 函数的 SELECT 语句*/SELECT 借书证号,sex= CASE 性别WHEN 0 THEN '男生'WHEN 1 THEN '女生'ENDFROM xs

使用第二种格式的CASE语句则可以使用以下T-SQL语句:


SELECT 借书证号, 姓名, 专业, SEX= CASE WHEN 性别=1 THEN '男'WHEN 性别=0 THEN '女'ELSE  '无'ENDFROM xs

(2)CAST 和 CONVERT函数

常用的类型转换有如下几种:

① 日期型→字符型。

② 字符型→日期型。

③ 数值型→字符型。

语法格式:


CAST ( expression AS data_type ) CONVERT (data_type[(length)], expression)

功能:将expression表达式的类型转换为data_type所指定的类型。

【例】 如下程序将检索库存量为3~10的ISBN、书名,并将库存量转换为char(20)。


/*如下例子同时使用 CAST 和 CONVERT*/-- 使用CAST实现.SELECT ISBN,书名,库存量FROM bookWHERE CAST(库存量 AS char(20)) LIKE '__' and 库存量>=3 and 库存量<10GO-- 使用 CONVERT实现.SELECT ISBN,书名,库存量FROM bookWHERE CONVERT(char(20),库存量) LIKE '__'  and 库存量>=3 and 库存量<10GO

(3)COALESCE函数


COALESCE ( expression [ ,…n ] ) 

功能:返回参数表中第一个非空表达式的值,如果所有表达式均为 NULL,则 COALESCE 返回 NULL 值。

COALESCE(expression1,...n) 与如下形式的CASE 函数等价:


CASEWHEN (expression1 IS NOT NULL) THEN expression1...WHEN (expressionN IS NOT NULL) THEN expressionNELSE NULL

(4)ISNUMBRIC函数。

ISNUMBRIC函数用于判断一个表达式是否为数值类型。


ISNUMBRIC(expression)

如果输入表达式的计算值为有效的整数、浮点数、money或decimal类型时,ISNUMERIC返回1;否则返回 0。

4.日期时间函数


日期函数可用在 SELECT 语句的选择列表或用在查询的 WHERE 子句中。

(1)GETDATE函数


GETDATE ( )

功能:按SQL Server标准内部格式返回当前系统日期和时间。返回值类型:datetime。

(2)DATEPAR函数


DATEPART(datepart,date)

功能:按datepart指定格式返回日期,返回值类型为int。datepart的取值可为非缩写形式或缩写形式。参数date的类型应为datetime或smalldatetime。

(3)DATEDIFF函数


DATEDIFF(datepart,startdate,enddate)

功能:按datepart指定的内容,返回startdate,enddate两个指定的日期时间之间的间隔,间隔可以以年、季度、月、周、天数或小时等为单位,这取决于datepart的取值。

参数类型与取值:datepart的取值范围如下表所示。

在这里插入图片描述

【例】 编写程序根据读者的出生时间,计算其年龄。


USE xsbookSET NOCOUNT ONDECLARE @startdate datetimeSET @startdate = getdate()SELECT DATEDIFF(yy,出生时间,@startdate )  AS 年龄FROM xs

(4)YEAR、MONTH、DAY函数

这三个函数分别返回指定日期的年、月、天部分,返回值都为整数。语法格式:


YEAR(date)MONTH(date)DAY(date)

5.游标函数


游标函数用于返回游标的有关信息。主要有如下游标函数:

(1)@@CURSOR_ROWS

语法格式:


@@CURSOR_ROWS

功能:返回最后打开的游标中当前存在的满足条件的行数。

(2)CURSOR_STATUS

语法格式:


CURSOR_STATUS(	 { 'local' , 'cursor_name' }  		/*指明数据源为本地游标*/| { 'global' , 'cursor_name' }  	     	/*指明数据源为全局游标*/| { 'variable' , cursor_variable }		/*指明数据源为游标变量*/) 

功能:返回游标状态是打开还是关闭。CURSOR_STATUS函数返回值如下表所示。

在这里插入图片描述

(3)@@FETCH_STATUS

语法格式:


@@FETCH_STATUS

功能:返回== FETCH 语句执行后游标的状态==。返回值类型为integer。@@FETCH_STATUS返回值如表下所示。

在这里插入图片描述

🎆用户函数的定义与调用

===========================================================================

根据用户定义函数返回值的类型,可将用户定义函数分为如下两个类别:

(1)标量函数:用户定义函数返回值为标量值,这样的函数称为标量函数。

(2)表值函数:返回值为整个表的用户定义函数为表值函数。根据函数主体的定义方式,表值函数又可分为内嵌表值函数或多语句表值函数。

1.标量函数


(1)标量函数的定义。

语法格式:


CREATE FUNCTION [ <数据库架构名>. ] <函数名> 		/*函数名部分*/( [ { @<形参名> [ AS ][ type_schema_name.]<数据类型> 		/*形参定义部分*/[ = default ] [ READONLY ] } [ ,...n ] ])					RETURNS <返回类型>					/*返回参数的类型*/[ WITH <function_option> [ ,...n ] ]			                 /*函数选项定义*/[ AS ]BEGIN function_body 					/*函数体部分*/RETURN scalar_expression				/*返回语句*/END[ ; ]

其中:


<function_option>::= {[ ENCRYPTION ]| [ SCHEMABINDING ]| [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]}

说明:

(1)<函数名>:函数名必须符合标识符的规则,对其架构来说该名在数据库中必须是唯一的。

(2)<形参名>:CREATE FUNCTION语句中可以声明一个或多个参数,用@符号作为第一个字符来指定形参名,每个函数的参数局部于该函数。

(3)<数据类型>:参数的数据类型可为系统支持的基本标量类型,不能为timestamp类型、用户定义数据类型、非标量类型(如cursor和table)。

(4)<返回类型>:函数使用RETURNS语句指定用户定义函数的返回值类型。

(5)function_body:由T-SQL语句序列构成的函数体。

(6)<function_option>:标量函数的选项。

从上述语法形式,归纳出标量函数的一般定义形式如下:


CREATE FUNCTION [所有者名.] 函数名( 参数1 [AS] 类型1 [ = 默认值 ] ) [ ,...参数n [AS] 类型n [ = 默认值 ] ] ] ) RETURNS 返回值类型[ WITH 选项 ] [ AS ]BEGIN函数体RETURN 标量表达式END

【例】 定义一个函数,按性别计算当前所有读者的平均年龄。

① 为了计算平均年龄,创建如下视图:


USE xsbookGOIF EXISTS(SELECT name FROM sysobjects WHERE name='VIEW_AGE' AND type='v')DROP VIEW VIEW_AGEGOCREATE VIEW VIEW_AGEAS SELECT 借书证号,性别,datepart(yyyy,GETDATE ( ))-datepart(yyyy,出生时间) as 年龄FROM xsGO

② 创建函数aver_age,用于按性别计算当前读者的平均年龄。


/*检查该函数aver_age是否已定义,若已定义,则删除之*/IF EXISTS(SELECT name FROM sysobjects WHERE name='aver_age' AND type='FN')DROP FUNCTION aver_ageGOCREATE FUNCTION aver_age(@sex bit) RETURNS intASBEGINDECLARE @aver intSELECT @aver=( SELECT avg(年龄) FROM VIEW_AGE WHERE 性别=@SEX)RETURN @averENDGO

(2)标量函数的调用

可按以下方式调用标量函数:

① 在SELECT语句中调用。调用形式:


架构名.函数名(实参1,…,实参n)

React

  • 介绍一下react

  • React单项数据流

  • react生命周期函数和react组件的生命周期

  • react和Vue的原理,区别,亮点,作用

  • reactJs的组件交流

  • 有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢

  • 项目里用到了react,为什么要选择react,react有哪些好处

  • 怎么获取真正的dom

  • 选择react的原因

  • react的生命周期函数

  • setState之后的流程

  • react高阶组件知道吗?

  • React的jsx,函数式编程

  • react的组件是通过什么去判断是否刷新的

  • 如何配置React-Router

  • 路由的动态加载模块

  • Redux中间件是什么东西,接受几个参数

  • redux请求中间件如何处理并发

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

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

相关文章

c#音乐播放器续(联网下载)

0.前言 书接上文&#xff0c;我们已经实现了一个能够播放本地音乐的音乐播放器&#xff0c;能够播放众多音乐格式&#xff0c;包括.ogg&#xff0c;接下来&#xff0c;我们将为我们的音乐播放器添加一个令人激动的新功能——联网音乐下载和播放&#xff01;这个功能将使我们能…

Ubuntu 22.04 解决 firefox 中文界面乱码

问题复现 在为Ubuntu 22.04 Server安装完整的GNOME 42.01桌面后&#xff0c;将桌面语言设置为中文时&#xff0c;打开Firefox可能会出现中文乱码的问题。经过网上调查发现&#xff0c;这个问题是由Snap软件包引起的。 解决方案 为了避免在Ubuntu 22.04中文模式下的乱码问题…

数学建模基础:非线性模型

目录 前言 一、非线性方程组 二、非线性规划 三、微分方程模型 四、非线性模型的应用 五、实例示范&#xff1a;传染病传播模型 实例总结 五、总结 前言 非线性模型用于描述变量之间的非线性关系&#xff0c;相比线性模型&#xff0c;其数学形式更为复杂&#xff0c;但…

AI大模型会如何颠覆手机?

导语&#xff1a;大模型在手机端的落地&#xff0c;不仅仅是AI进入人类生活的开始&#xff0c;也是行业发生颠覆&#xff0c;新老巨头进行更替的时刻。 将大模型变小&#xff0c;再塞进手机&#xff0c;会给人们的生活带来怎样的影响&#xff1f; 最近&#xff0c;荣耀成为了…

Java基础学习-流程控制语句-顺序结构-分支结构-循环结构

目录 顺序结构&#xff1a; 分支结构&#xff1a; if语句&#xff1a; 第一种格式&#xff1a; if第二种格式&#xff1a; 案例练习 if第三种格式&#xff1a; switch语句&#xff1a; 格式&#xff1a; switch其他知识点&#xff1a; 循环结构&#xff1a; for循环…

yolov8图像分割训练

1.背景 最近在做一个AI项目&#xff0c;需要用到yolov8的实例分割功能来确定一个不规则区域&#xff0c;从而找出不规则区域的坐标完成大致定位&#xff0c;以前有用过yolov8的目标检测功能&#xff0c;实际上yolov8的分割功能和检测功能大同小异。本博客将仔细分享使用yolov8图…

给电脑bios主板设置密码

增强安全性&#xff1a;防止未经授权的人员更改 BIOS 中的重要设置&#xff0c;如启动顺序、硬件配置等。这有助于保护计算机系统的稳定性和数据的安全性。防止恶意篡改&#xff1a;阻止可能的攻击者或恶意软件通过修改 BIOS 设置来破坏系统或获取敏感信息。数据保护&#xff1…

多功能声学综合馆:气膜声学环境的创新解决方案—轻空间

多功能声学综合馆作为一种创新的建筑解决方案&#xff0c;成功地解决了传统气膜馆内部噪音问题&#xff0c;为用户提供了一个宁静、舒适的环境。轻空间依托科研院校&#xff0c;研究出与气膜匹配的复合声学材料以及悬挂安装工艺&#xff0c;既保证气膜安全&#xff0c;同时实现…

C语言入门系列:数据类型之浮点数

文章目录 一&#xff0c;什么是浮点数二&#xff0c;C语言中的浮点数1&#xff0c;float1.1 float的声明1.2 float的存储格式1.3 float的精度和范围 2&#xff0c;double2.1 double变量的声明2.2 double的存储格式2.3 double的精度和范围2.4 long double 3&#xff0c;0.2 0.1…

uni app 树状结构数据展示

树状数据展示&#xff0c;可以点击item 将点击数据给父组件 &#xff0c;满足自己需求。不喜勿喷&#xff0c;很简单可以根据自己需求改哈&#xff0c;不要问&#xff0c;点赞收藏就好 <template><view><view v-for"(node, index) in treeData" :ke…

Mellanoxnvidia ib高速网络常用命令总结

1.spci&#xff1a;检查本地的pci设备。示例&#xff1a;lspci| grep -i mell 2.ofed_info&#xff1a;检测ofed驱动版本。示例&#xff1a;ofed_info-s 3.ibstat&#xff1a;查看本机的ib网卡状态。 4.mst&#xff1a;mellnoax软件管理工具。用来生成IB设备描述符。提供给其他…

经典游戏案例:unity官方推荐3d跑酷

学习目标&#xff1a;实现跑酷核心算法 游戏画面 项目结构目录 部分核心代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 游戏管理器是一个状态机&#xff0c;根据当前的游戏状态&#xff0c;它…

图解Attention学习笔记

教程是来自https://github.com/datawhalechina/learn-nlp-with-transformers/blob/main/docs/ 图解Attention Attention出现的原因是&#xff1a;基于循环神经网络&#xff08;RNN&#xff09;一类的seq2seq模型&#xff0c;在处理长文本时遇到了挑战&#xff0c;而对长文本中…

华北水利水电大学-C程序设计作业

目录 基础题 1-1 分析 代码实现 1-2 分析 代码实现 1-3 分析 代码实现 1-4 ​编辑 分析 代码实现 1-5 分析 代码实现 1-6 分析 代码实现 基础题 1-1 从键盘输入10个学生的有关数据&#xff0c;然后把它们转存到磁盘文件上去。其中学生信息包括学号、姓名…

Redis变慢了?

Redis变慢了&#xff1f; 什么是Redis&#xff1f;测定Redis变慢&#xff1f;最大响应延迟平均响应延迟设置Redis慢日志 分析Redis变慢bigkeysbigkey的危害bigkey优化 写在最后 什么是Redis&#xff1f; 作为一个技术人员来说&#xff0c;大家用的最多的可能就是Redis了&#…

EMQX集群搭建

1. 什么是 MQTT&#xff1f; MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级、基于发布-订阅模式的消息传输协议&#xff0c;适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它在物联网应用中广受欢迎&#xff0c;能够实现传感器、…

防火墙中的NAT

防火墙的NAT NAT分类 源NAT 基于源IP地址进行转换。 我们之前接触过的静态NAT&#xff0c;动态NAT&#xff0c;NAPT都属于源NAT&#xff0c;都是针对源IP地址进行转换的。源NAT主要目的是为了保证内网用户可以访问公网。 先执行安全策略&#xff0c;后执行NAT 目标NAT 基于…

git的分支管理

✨前言✨ &#x1f4d8; 博客主页&#xff1a;to Keep博客主页 &#x1f646;欢迎关注&#xff0c;&#x1f44d;点赞&#xff0c;&#x1f4dd;留言评论 ⏳首发时间&#xff1a;20246月19日 &#x1f4e8; 博主码云地址&#xff1a;博主码云地址 &#x1f4d5;参考书籍&#x…

【TB作品】MSP430G2553,单片机,口袋板, 单相交流电压、电流计设计

题5 单相交流电压、电流计设计 设计基于MSP430的单相工频交流电参数检测仪。交流有效值0-220V&#xff0c;电流有效值0-40A。电压、电流值经电压、电流传感器输出有效值为0-5V的交流信号&#xff0c;传感器输出的电压、电流信号与被测电压、电流同相位。 基本要求如下 &#xf…

05、部署 YUM 仓库及NFS 共享服务

目录 5.1 部署YUM软件仓库 5.1.1 准备网络安装源&#xff08;服务器端&#xff09; 1、准备软件仓库目录 2、安装并启用vsftpd服务 5.1.2 配置软件仓库位置&#xff08;客户端&#xff09; 5.2 使用yum工具管理软件包 5.2.1 查询软件包 1、yum list——查询软件包列表 …