SQL Server 支持两种字符数据类型---常规和Unicode;常规类型包括char 和varchar;unicode包括nchar 和nvarchar。常规的每个字符占用一个字节存储,而unicode数据类型每个字符占用2个字节,并且需要一个代理项对时需要4个字节。如果为列选择了常规字符类型,会被限制除英文外只能使用一种语言。使用unicode数据类型可以支持多种语言。如果需要存储多种语言的字符数据,应该使用unicode字符类型。

-- 1、字符串连接 使用“+”运算符

select empid,firstname + ' ' + lastname as fullname from HR.Employees

-- 连接null的结果直接输出null

select custid,country,region,city, country +' ' +region +' ' +city as location from sales.Customers

-- 2、substring函数 substring(string,start,length)此处需要注意sql的开始位置是从1开始的; substring函数可以从字符串中提取一个新的字符串

select SUBSTRING('abcd',1,2) --返回ab

select SUBSTRING('abcd',1,6) --如果长度超出字符串长度不报错,而是输出到字符串的最后一位

-- 3、left 和right 函数;这两个函数是substring的简化形式,可以从指定字符串的左边或者右边返回指定长度的新字符串 left(string,n) right(string,n)

select LEFT('abcd',1) --返回a

select RIGHT('abcd',2) --返回cd

-- 4、len和datalength函数;len函数返回指定字符串的长度;datalength返回指定字符串的字节长度;

-- 在常规数据类型中每个字符需要一个字节存储,所以两个函数返回值是一样的;
-- unicode字符,每个字符需要两个存储字节(大部分情况下)

select LEN('abcd') --返回4

select DATALENGTH('abcd') --返回4

select DATALENGTH(N'abcd') --返回8

-- 5、charindex函数;返回子字符串在字符串中第一次出现的位置

select charindex('abc','xyzabcdefabc') --返回4

-- 可以选择第三个参数 指定开始查找的位置

select charindex('abc','xyzabcdefabc',5) --返回10

-- 6、patindex函数;这个函数和sql中的like谓词类似

select PATINDEX('%1%','abcd1234abcd') --返回5

-- 7、replace(string,str1,str2)函数;在字符串中使用str2替换string中所有的str1;

select REPLACE('abcd1234abcd','a','#')

-- 该函数另外一个用法;计算某个字符在字符串中出现的次数

select len('abcde')- len(replace('abcde','a','')) --a在字符串中出现1次

select len('abcdeabcd')- len(replace('abcdeabcd','a','')) -- a在字符串中出现2次

-- 8、replicate函数;按照指定的次数重复出现一个字符串

select REPLICATE('abc#',3)

-- 实际应用 供应商编号固定位10位,不足10位在前面补0

select supplierid,RIGHT(REPLICATE('0',9) + cast(supplierid as varchar(10)),10) as strsupplierid from Production.Products

-- 9、stuff函数;允许从字符串中移除指定数量的字符串,并插入一个替代的新子字符串

-- stuff(string,index,delete_length,indertstring)
select STUFF('abc',1,2,'12345') --返回12345c

select STUFF('abcd',4,1,'123') -- 返回abc123

-- 10、upper和lower函数;返回大写和小写字符串

select UPPER('abCD') --返回‘ABCD’

select LOWER('abCD') --返回‘abcd’

-- 11、ltrim、rtrim函数去掉左边或者右边的空字符串
select LTRIM(' abc ') --返回'abc '

select Rtrim(' abc ') --返回' abc'

-- 12、Format函数;将输入的值按照指定格式返回 -注意这个函数只有在SQL Server2012以上才可以使用
-- 例8中返回指定长度的字符串可以用format很简单的完成
select FORMAT('123','0000000000')

select FORMAT(getdate(),'YYYY-MM-DD')

Sql Server 字符串操作总结的更多相关文章

  1. sql server 字符串替换函数REPLACE

    sql server 字符串替换函数REPLACE函数的使用 <pre name="code" class="sql">--参数1:需要替换字符的母 ...

  2. sql server字符串的类型

    sql server字符串分为不同的类型,下面就将为您介绍几个sql server字符串的常见类型,希望对您学习sql server字符串能有所帮助. nchar 此数据类型可存储1~4000个定长U ...

  3. [转]SQL Server字符串处理函数大全

    select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不 ...

  4. C++对MS SQL Server的操作

    今天因为在做一份C++的期末作业,突然想用C++来链接数据库,实现数据的重复利用,所以就作死去百度搜了一下. 更巧的事情是,一搜居然还有很多搜索结果,然后就照着做了. 做的过程很艰辛,就不一一诉说了, ...

  5. SQL SERVER字符串函数

    本篇文章还是学习<程序员的SQL金典>内容的记录,此次将讲解的是SQL SERVER的字符串函数. 其实数据库跟程序语言库一样,都会集成很多可以使用的API.这些API,如果你熟悉的话,将 ...

  6. SQL Server 文件操作

    在master数据库中,SQL Server提供系统扩展的存储过程,其中有一些存储过程的命名以xp_开头,用于处理操作系统的文件. 一,判断文件是否存在 存储过程sys.xp_fileexist 用于 ...

  7. 【转】sql server数据库操作大全——常用语句/技巧集锦/经典语句

    本文为累计整理,有点乱,凑合着看吧! ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ☆ ☆ ☆ sql 宝 典 ☆ ☆ ☆ 2012年-8月 修订版 ☆ ...

  8. sql server C#操作。原文在收藏页面

    C#操作SQL Server数据库   1.概述 2.连接字符串的写法 3.SqlConnection对象 4.SqlCommand对象 5.SqlDataReader对象 6.DataSet对象 7 ...

  9. sql server 字符串转成日期格式

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

随机推荐

  1. PS制作漂亮紫色霓虹灯光文字

    一.新建画布,大小1500 * 950像素,分辨率为300,置入墙壁图像,大小适合. 二.调整图层的色阶,色相/饱和度. 三.新建文字图层,颜色为#a33e88,大小为103,字体为Beon Medi ...

  2. Spring 使用纯注解方式完成IoC

    目录 创建一个简单的Person类 使用xml方式配置Spring容器并获取bean的过程 创建xml配置文件 进行测试 使用纯注解方式配置Spring容器并获取bean的过程 创建spring配置类 ...

  3. XCTF体验题库 : ReverseMe-120

    ida打开看一下: sub_401000函数是能否输出“correct”的关键 点进去看一下: 可以看到将输入的字符串赋予了byte_414E40这个数组的值,看一下这个数组: 应该是base64的解 ...

  4. HTML5特性之AJAX跨域

    js跨域问题一般会考虑iframe.jsonp. 后端语言设置响应头:header('Access-Control-Allow-Origin:*),*号表示允许所有域名,可以将*号改为指定允许的访问域 ...

  5. rest framework 视图,路由

    视图 在上面序列化的组件种已经用到了视图组件,即在视图函数部分进行逻辑操作. 但是很明显的弊端是,对每个表的增删改查加上 单条数据,需要用到 2个类 5个方法(增删改查,单数据查)才可以完整的实现,当 ...

  6. prometheus rules

    prometheus 持久查询 有三种方法可以使我们的持久查询(不用每次都要输入查询规则): 记录规则  -  从查询中创建新的指标. 警报规则  -  从查询生成警报. 可视化  -  使用像Gra ...

  7. usb的hid鼠标键盘报告描述符(五)

    title: usb的hid鼠标键盘报告描述符 tags: linux date: 2018/12/20/ 18:05:08 toc: true --- usb的hid鼠标键盘报告描述符 https: ...

  8. Vim使用技巧:将Tab转换为4个空格

    一 Tab转成4个空格 为了防止因为在不同系统中Tab键的宽度不一致而导致代码缩进显示混乱的情况,有必要将Tab键转换成空格,推荐的空格数为4.将下面的代码写入你的.vimrc文件中即可实现在Vim编 ...

  9. ArcGis地理坐标系转投影坐标系问题的思考与处理

    博主又不知道标题该咋写了,凑合看吧. 国庆前帮人处理了这样一个问题:Shapefile数据,加载到ArcMap后呈懵逼状态,缩放功能完蛋.求助者希望对数据进行投影,由CGCS2000的GCS坐标系投影 ...

  10. [再寄小读者之数学篇](2015-06-24 Series)

    (AMM. Problems and Solutions. 2015. 03) Let $\sed{a_n}$ be a monotone decreasing sequence of real nu ...