SQL Server 字符串在实际操作中的注意事项


  本文标签:SQL Server 字符串

  以下的文章主要向大家描述的是SQL Server 字符串在实际操作中值得我们大家注意的事项的描述,有一张关于新闻数据表 tb_news,该表有字段 news_id int, news_type int,前者是主键,后者是新闻所属栏目ID,现在要求是这样:

  给定一个SQL Server 字符串a_right,该字符串中包含多个新闻栏目ID值,即news_type,并且存储格式是b+news_type+v,各ID值之间以逗号相隔,

  例如:b1v, b2v, b3v……

  现在要从新闻表中查询出所有news_type经格式转换为b+news_type+v后,该格式的新闻栏目被包含在a_right中的新闻,刚

  开始写的查询语句如下: 

  1. select * from tb_news where charindex(b+str(news_type)+v, @a_right) >= 1 

  结果执行结果与愿望中的结果大相径庭!

  经过反复排查,最后终于查出原因所在:SQL Server的str()函数有两个参数:str(express, length),当未指定length时,默认

  是转为字符串后,SQL Server 字符串左边保留10个空字符,例如:print b+str(2),则结果为b 2  。因此,需要将转化后的字符串去掉空值,

  此时可以使用ltrim()函数,例如执行:print b+ltrim(str(2)),结果为b2  。

  于是将上面的查询语句改为:

  1. select * from tb_news where charindex(b+ltrim(str(news_type))+v, @a_right) >= 1 

  顺利执行!以上的相关内容就是对SQL Server 字符串操作注意点的介绍,望你能有所收获  。

SQL Server 字符串操作注意点

上述的相关内容就是对SQL Server 字符串操作注意点的描述,希望会给你带来一些帮助在此方面  。

  原文标题:SQL Server 字符串操作注意点

  连接:http://www.cnblogs.com/pricks/archive/2010/04/02/1703292.html