
[英]How can I program a field in a query to display a comma separated list of unique values in the subdatasheet for that record?
[英]How can I split comma separated values in a single row and then list by number in a sql query? [duplicate]
我的表中有一个列(表名是 rtp2k),其中包含用逗号分隔的多个值。 我想拆分这些值,然后按数字列出它们。
我的专栏目前看起来像:
+-------+
| A2 |
| a,b,c |
| d,e,f |
| c,b |
| a,d,f |
| d,e,f |
+-------+
我知道这不是最佳实践。 我没有创建这个表。 我只是应该从中提取数据以在截止日期前使用 mysqli、php 和 google 图表制作图表。
我当前的查询看起来像这样,但我不需要那里的 id,我想按值计算它们,而不是单独列出每个。
select
rtp2k.id,
SUBSTRING_INDEX(SUBSTRING_INDEX(rtp2k.a2, ',', numbers.n), ',', -1) a2
from
(select 1 n union all
select 2 union all select 3 union all
select 4 union all select 5) numbers INNER JOIN rtp2k
on CHAR_LENGTH(rtp2k.a2)
-CHAR_LENGTH(REPLACE(rtp2k.a2, ',', ''))>=numbers.n-1
order by
id, n
我希望查询返回如下内容:
a - 2
b - 2
c - 2
d - 3
e - 2
f - 3
基本上按值分隔字符串并列出每个字符串的数量。
我目前的结果是: 这张表
如有任何帮助,我将不胜感激。
SELECT ColumnID, Column1, value --Do not change 'value' name. Leave it as it is.
FROM tbl_Sample
CROSS APPLY STRING_SPLIT(Tags, ','); --'Tags' is the name of column containing comma separated values
所以我们有这个: tbl_Sample :
ColumnID| Column1 | Tags
--------|-----------|-------------
1 | ABC | a,b,c
2 | PQR | d,e,f
运行此查询后:
ColumnID| Column1 | value
--------|-----------|-----------
1 | ABC | a
1 | ABC | b
1 | ABC | c
2 | PQR | d
2 | PQR | e
2 | PQR | f
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.