--由于varchar(200)中的200代表字节数,而常用的left,right,subsring统函数中的参数却是字符数
--这样截取的长度直接插入到varchar中会出现截断错误,所有现在改进left函数通(字节数内部转换为字符数)
--注意:汉字和单个字符的字节数是不一样的,汉字占用两个字节但不能分开,所以最后两个字符必须判断
--比如你需要20个字节:19个字母加+1个汉字,那么最后一个汉字要去除,不然结果就是21,这样还是会截断
ALTER function [dbo].[f_newleft](@in_str varchar(max),@in_len int)
returns varchar(max)
as
begin
declare @i int,@len int,@out_str varchar(max)
set @i=1
set @len=0
set @out_str=''

while @i<=len(@in_str) and @len<@in_len
begin
    if datalength(substring(@in_str,@i,1))=2
    begin
        set @len=@len+2
        set @i=@i+1
    end
    else
    begin
        set @len=@len+1
        set @i=@i+1
    end
end

if @i>1 and datalength(left(@in_str,@i-1))>@in_len
begin
    set @out_str=left(@in_str,@i-2)
end
else
begin
    set @out_str=left(@in_str,@i-1)
end

return @out_str

改进left函数,截取varchar需要的字符串长度相关推荐

  1. sqlserver数据库,使用substring函数截取不固定位置字符串。

    sqlserver数据库,使用substring函数截取不固定位置字符串. 当我们在向页面写入数据库查询出来的数据的时候,有一些不必要的字符串,相信大家肯定会在后台的java代码中进行处理再返回到页面 ...

  2. 详解MySQL字符串函数TRIM()、填充函数LPAD()、RPAD()、字符串长度LENGTH()用法(三)

    文章目录 一.删除空格函数TRIM().LTRIM().RTRIM() 1.TRIM() 2.LTRIM() 3.RTRIM() 二.填充函数LPAD().RPAD() 1.LPAD() 2.RPAD ...

  3. js 截取 前后 空格 获取字符串长度

    为什么80%的码农都做不了架构师?>>>    var NYString = {     // 去除字符串前后空格     Trim : function(sSubStr){    ...

  4. python3调用函数len结果不返回字符串长度_Python通过len函数返回对象长度

    英文文档: len(s) Return the length (the number of items) of an object. The argument may be a sequence (s ...

  5. 编写C语言函数求字符串长度,用C语言编写函数,实现strlen计算字符串长度的功能...

    本文介绍三种方法: 1.循环计数法,(设置一个计数器). 2.递归法,(函数调用自身进行计算) 3.指针-指针法,(库函数使用的是此方法) 现在列入程序: 方法1: /* 计数法 */ int my_ ...

  6. php求字符串长度函数是,PHP中获取字符串长度的函数是 。

    [判断题]探索精神不属于创新精神的表现? [单选题]从结构分类上,5-FU是( )类的抗代谢物 [单选题]当前占跨境电子商务比重较低,但增长最为迅速的是哪一部分 [多选题]要降低树木栽植后蒸腾作用以提 ...

  7. c语言strcpy两字符串长度不同,(C语言)自己写字符串操作函数(一)——strlen/strcpy/strcat/strcmp/st...

    看到很多面试都会要求你写一些简单的字符串操作函数,这些函数看起来挺简单的,但是自己写的时候就会发现不少的问题.所以我自己把大部分的字符串操作函数都写了一遍,然后用了个测试程序来测试自己写的函数与库函数 ...

  8. oracle 创建nchar类型,ORACLE创建自定义函数返回varchar类型

    select from tmp1; select from tmp2; 方法一: 好处:简单,直接sql展示 劣处:如果主表数据量太大,十几亿的话,性能会大大下降,此时建议第二种方法 select a ...

  9. PHP字符串函数strlen(获取字符串长度)

    在PHP中,字符串函数 strlen() 用来获取字符串长度.     函数语法: strlen ( string $string ) : int 函数参数说明: 参数 描述 string 必需.规定 ...

  10. php里那些函数是获取字符串长度,【后端开发】PHP获取字符串长度函数strlen()函数...

    在一些网站注册或者其他活动中,我们需要用户提交一些信息,对于这些信息会有一定的要求,比如用户注册信息有一些限制长度不能小于多少大于多少.这里我们就需要使用PHP自带函数进行获取操作. 获取字符串长度使 ...

最新文章

  1. python汉诺塔用循环结构实现_Python基于递归算法实现的汉诺塔与Fibonacci数列
  2. vue获取元素距离页面顶部的距离_VUE实时监听元素距离顶部高度的操作
  3. [vue] 你是从vue哪个版本开始用的?你知道1.x和2.x有什么区别吗?
  4. ATA接口寄存器描写叙述
  5. Jsp+Ssm+Mysql实现的房屋租赁租房管理系统
  6. STM32F407控制舵机
  7. (20200420已解决)InfluxDB时间显示格式
  8. Unity ScrollView图片滑动翻页效果
  9. 区块链会计案例_或许你也曾想过:区块链正在改变着会计行业!
  10. 食堂报餐点餐公司订餐微信小程序源码开发使用
  11. 百度地图标注公司那家好
  12. 为什么BAT公司宁愿花25K重新招人,也不愿花20K留住老员工?
  13. [fyne] build constraints exclude all Go files in
  14. ORACLE RAC停止和启动
  15. excel百万数据如何导入导出
  16. My Interview
  17. Nginx+Apache一前一后双引擎驱动的你网站
  18. 这64所大学官方公布考研【专业课真题】可以直接下载!
  19. 对前期代码的升级打造
  20. 一样的歌 不一样的感觉

热门文章

  1. 7个最佳小型企业电子邮件营销服务(2020)
  2. 【K8S etcd篇】部署etcd 3.4.14 集群
  3. pwnable.tw-2018-starbound_writeup
  4. 占星术杀人魔法 - 笔记
  5. 福州到横店嘉兴三日游(仅供参考)
  6. 测试和开发之间的博弈--没有硝烟的战争
  7. Spring课程 Spring入门篇 5-6 introductions应用
  8. unity 贴图合并_[2018.4]Unity版本迭代与效果提升
  9. Map接口及其实现类
  10. 网站地图是什么,怎么制作和查看网站的地图呢?