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')

最新文章

  1. iOS应用九宫格算法
  2. Shopex4.85商派2014年商业模板和商业插件共600多套仅售600元送分销王2代SEO排名神具。
  3. PHP实现文件上传
  4. nginx https反向代理 tomcat
  5. 【译】RabbitMQ:路由(Routing)
  6. VS 2013 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService...匹配的导出[vs故障]【转】
  7. 《android基于andFix的热修复方案》思路篇
  8. IntelliJ IDEA(社区版)学习记录
  9. 点击li标记中的<a>标记改变li背景图片怎样实现
  10. C# chart控件绘制曲线
  11. Ubuntu---2
  12. Maven 工程下 Spring MVC 站点配置 (三) C3P0连接池与@Autowired的应用
  13. 网络资源(9) - TDD视频
  14. vim的vimrc设置
  15. ES6-01:常量与变量的声明
  16. haproxy-代码阅读-内存管理
  17. wpf值转换器IValueConverter例子
  18. 在C# 中 如何限制在文本框(textBox)中输入的类型为正整数
  19. 基于ko-easyui实现的PC前端模板功能完善
  20. 第八篇 Flask配置

热门文章

  1. [Oracle维护工程师手记]两表结合的MVIEW的告诉刷新
  2. c#, AOP动态代理实现动态权限控制(一)
  3. mysql自动断开该连接解决方案
  4. Linux nfs下载安装与简单配置
  5. SQL拼接字符串时单引号转义问题 单引号转义字符
  6. uni-app 引入ecart
  7. vue路由嵌套,vue動態路由
  8. 17.kubernete的dashboard
  9. 读取Excel2003、Excel2007或更高级的兼容性问题 workbook 下载中文名称文件
  10. C#嵌入动态链接库到可执行文件