我有一个名为的数据库Customer,我有一个名为的表Product,在此产品表中,有一个名为Class和的列Client。现在,此类列具有单个值,并且该列中的多个值由a分隔,';'如下所示:
1. Class Client
1 a
5 b
6 c
8;4 d
7 e
2 f
1 g
3 h
2;1 i
8;5;9;10 j
10 k
我```
要完成的工作是按客户端分离所有类,并将文本值应用于该类。例如,这里是我要与class列下的数值对应的文本值。(不幸的是,这些文本值不在数据库中,并且我没有创建表的权限)。
```js
Class Product
1 cat
2 dog
3 bird
4 fish
5 tree
6 car
7 desk
8 TV
9 door
10 bike
11 radio
12 disk
这就是所需的输出。
Client Class
a cat
b tree
c car
d TV
d fish
e desk
f dog
g cat
h bird
i dog
i cat
j tree
j TV
j door
j bike
k bike
我该怎么做?我正在使用Microsoft SQL Server。
您可以使用split_string()和派生表:
select t.client, v.classname
from t cross apply
split_string(t.class, ';') s left join
(values ('1', 'cat'),
('2', 'dog'),
. . .
) v(class, classname)
on t.class = v.class
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。