问题:如何在T-SQL中获取逗号分割的字符串数据中的元素?
答案:
1.利用循环逐个取出字符串的元素.可利用我在前面的随笔中整理的获得字符串中元素个数,以及指定索处的元素的两个函数完成.具体方法前面已有详细代码,此略.
2.高效的方法是将字符串稍做组合变化后,利用charindex函数和cast函数进行巧妙查找.
示例如下:
sample1: select userid,username from systemmanage..users
where charindex(','+cast([userid] as varchar)+',',','+'5,6,8,9,10,11'+',')>0
sample2: select userid,username from systemmanage..users
where charindex(','+cast([userid] as varchar)+',',','+(select actor from meeting where meetingid=36)+',')>0
注意:一定要用cast函数进行类型转换,是要在源字符串和目标字符串前后都加上','(逗号),以构成统一的字符串模板: ',元素,' ,才能进行匹配.