我有一个两列的表,里面充满了字符串。
CREATE TABLE [tbl_text]
(
[directoryName] nvarchar(200),
[text1] nvarchar(200),
[text2] nvarchar(200)
)字符串的构建如下所示
| Text1 | Text2 |
|------------|----------|
|tz1 tz3 tz2 | al1 al2 |
| tz1 tz3 | al1 al3 |
| tz2 | al3 |
| tz3 tz2 | al1 al2 |现在,我想要计算TestN或TextN产生的
| Text1 | al1 | al2 | al3 |
|-------|------|------|------|
| tz1 | 2 | 1 | 1 |
| tz2 | 2 | 2 | 1 |
| tz3 | 3 | 2 | 1 |我试着用这样的sql查询来解决它:
TRANSFORM Count(tt.directoryName) AS Value
SELECT tt.Text1
FROM tbl_text as tt
GROUP BY tt.Text1
PIVOT tt.Text2;如果我的字段只有一个值,比如第三列(完整的数据源必须类似于一个值样式),那么这很好,但是在我的例子中,我使用字符串进行多选择.
如果我试图将这个查询整合到一个在值之间填充了“”的数据源上,结果就会完全混乱。
有什么建议,查询应该是什么样子才能得到这个结果?
发布于 2015-08-29 06:33:44
您必须在Text1 1/Text1 2中拆分字符串,然后才能对它们执行任何操作。在VBA中,您可以循环一个记录集,使用Split()函数,并将结果插入到临时表中。
在Server中,有更强大的选项可用。
来自这里:Split function equivalent in T-SQL?,
您应该阅读此页:http://www.sommarskog.se/arrays-in-sql-2005.html#tablelists
https://stackoverflow.com/questions/32266767
复制相似问题