FOR XML PATH 语句 求优化
时间:2011-11-10
来源:互联网
A B C
1 1 asd
1 2 sdf
1 3 dfg
2 1 fgh
2 2 ghj
2 3 hjk
2 4 jkl
3...
大概一共50W行。
要得到
1 asd\sdf\dfg
2 fgh\ghj\hjk\jkl
3 ...
我使用
SELECT A,
SUBSTRING((SELECT '\' + C FROM t L WHERE L.A = F.A ORDER BY L.B FOR XML PATH('')))
FROM t F
GROUP BY A
但是查询非常的慢。
请问各位,听说子查询时索引很有用,我需要为这个表建索引吗?怎么建立?
不胜感激。
作者: siegebaoniu 发布时间: 2011-11-10
作者: geniuswjt 发布时间: 2011-11-10
作者: pengxuan 发布时间: 2011-11-10
作者: fredrickhu 发布时间: 2011-11-10
作者: q465897859 发布时间: 2011-11-10
我有类似这样的表t:
A B C
1 1 asd
1 2 sdf
1 3 dfg
2 1 fgh
2 2 ghj
2 3 hjk
2 4 jkl
3...
大概一共50W行。
要得到
1 asd\sdf\dfg
2 fgh\ghj\hjk\jkl
3 ...
我使用
SELECT A,
SUBSTRING((SELECT '\' + C FROM t L……
就2列,A,B,C一块建个覆盖索引。 所查即所得。
作者: OrchidCat 发布时间: 2011-11-10
我有类似这样的表t:
A B C
1 1 asd
1 2 sdf
1 3 dfg
2 1 fgh
2 2 ghj
2 3 hjk
2 4 jkl
3...
大概一共50W行。
要得到
1 asd\sdf\dfg
2 fgh\ghj\hjk\jkl
3 ...
我使用
SELECT A,
SUBSTRING((SELECT '\' + C FROM t L……
SUBSTRING((SELECT '\' + C FROM t L WHERE L.A = F.A ORDER BY L.B FOR XML PATH('')))
用法不正确
SQL code
stuff((SELECT '\' + C FROM t L WHERE L.A = F.A ORDER BY L.B FOR XML PATH('')),1,1,'')
作者: roy_88 发布时间: 2011-11-10
分页,从业务上优化
支持2楼的说法
作者: fanzhouqi 发布时间: 2011-11-10
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28