开发者社区> 问答> 正文

拆分列并将文本值添加到数值

我有一个名为的数据库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。

展开
收起
祖安文状元 2020-01-03 16:29:53 517 0
1 条回答
写回答
取消 提交回答
  • 您可以使用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
    
    2020-01-03 16:30:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载