zoukankan      html  css  js  c++  java
  • SqlServer之整形转字符型以及去除空格

      通常我们在写存储过程的时候会用到拼字符串的情况,特别是表设计采用分表设计的时候,会较常用到拼字符串,在存储过程中如果遇到下面这样的程序段结果会如何?

    declare @Sql nvarchar(2000),@id int
    set @id=1
    set @Sql='select UserID from tb where id='+@id
    exec(@Sql)

      事实证明,这样的结果,拼出来的@sql会是:select UserID from tb where id= 这里的1少了,为什么会这样?这是因为@id是整型,如果要这条sql语句正确执行需要做如下处理:

    declare @Sql nvarchar(2000),@id int
    set @id=1
    set @Sql='select Name from tb where id='+str(@id)
    exec(@Sql)

      在写存储过程中,如果少了这个转换就会得不到想要的结果,以前我自己也老犯这毛病。接下来我们来看下面的另一个demo:

    declare @Sql nvarchar(2000),@i int
    set @i=1
    set @Sql='insert into tb(name) values(''这是第'+@i+'个人'')'
    exec(@Sql)

    如果这样又会是个什么样的结果?结果是插入库里肯定没问题的,问题是这个1前面会有空格,像”这是第      1个人“。如果这样的话,那么在前段呈现出来就很不好看了,我们再插入的时候就需要对这经行空格的过滤。我们在写程序的时候如果有遇到空格都会想到用trim来规律,其实在sql里也有类似函数,我们这需要过滤的是左边的空格,所以我们可以这样写:

    declare @Sql nvarchar(2000),@i int
    set @i=1
    set @Sql='insert into tb(name) values(''这是第'+LTrim(@i)+'个人'')'
    exec(@Sql)

      这里的L=left表示左边,如果是右边可以用RTrim()来过滤。

    讲了这么多,现在已经可以自然的拼字符串了。

  • 相关阅读:
    织梦dedecms网站数据库出错如何修复
    如何实现织梦dedecms会员登陆后就不显示广告
    搜索框里显示字段鼠标点击后就隐藏的方法
    织梦dedecms首页如何调用联动类别代码
    织梦CMS友情链接调用方法技巧大全
    DedeCMS 标题seo优化给列表页加上第x页
    DedeCMS采集教程:过滤替换的技巧
    织梦dedecms网站数据库出错如何修复
    压力测试-查看索引
    时间同步服务部署
  • 原文地址:https://www.cnblogs.com/_fyz/p/SqlStrTrim.html
Copyright © 2011-2022 走看看