有时候一张表的一个字段是以逗号分割的一个字符串,分割的数字是明细表的主键id. 关联明细表查询可以这样做: ) ) --这是把areanos字段赋值给@areanos变量 set @areanos='1,2,3' --将拼接的SQL脚本赋值给变量 set @str='select * from area where areano in ('+@areanos+') order by areano' --调用系统存储过程,执行SQL exec sp_executesql @str
今天修改到之前的大佬的代码,居然把多个Id存在一个列里面,还是用的逗号分割...特么查询的时候怎么办??? 网上搜索了半天,终于找到了SqlServer里面有一个PARSENAME函数,可以按.(点)分割字符串, 于是写下了如下sql ) ) AS two FROM 表 查询结果 参考文章:http://www.cnblogs.com/huangshuqiang/archive/2016/05/10/5477385.html
CREATE FUNCTION dbo.sf_DS_SplitNVarchar ( @strValues nvarchar(4000) ) RETURNS @tblStrList TABLE (id int identity(1,1),value nvarchar(4000)) AS BEGIN declare @strTmp nvarchar(4000) declare @intPos int select @strValues=ltrim(rtrim(@strValues)) while @
知识补充 String的split方法支持正则表达式: 正则表达式\s表示匹配任何空白字符,+表示匹配一次或多次. 有了以上补充知识,下面的内容就很好理解了. 一.待分割字符串 待分割字符串为如下: String str = "a b c d e f g" 其中,字符串中的的空白分别为:单个空格,多个空格,tab制表符. 二.使用一个或多个空格分割字符串 正确代码如下: String [] arr = str.split("\\s+"); for(String ss