apply用法(2)——字符串拆分转列
介绍一种apply更有意思的用法。
table TT 表结构如下 client gift 1000 礼品A,礼品B,礼品C, 1200 礼品A,礼品D, 1500 礼品C, ... ...
发现这种表结构对于统计消费者整体的礼品偏好十分不友好。理想的表结构应该是这样的:
client gift 1000 礼品A 1000 礼品B 1000 礼品C 1200 礼品A 1200 礼品D 1500 礼品C
... ...
可以这样实现:
text_spilt是表值函数,作用是将字符串拆分成一列。详细了解可以看下我的 将特定字符分割字符串转成列输出
select client,spilts as gift from TT as tt cross apply (select spilts from text_spilt(tt.gift,','))t 结果为 client gift 1000 礼品A 1000 礼品B 1000 礼品C 1200 礼品A 1200 礼品D 1500 礼品C

浙公网安备 33010602011771号