【发布时间】:2017-12-09 02:32:38
【问题描述】:
我有 SSMS 2008 R2。这是我的桌子
PK | DateOf | Other Columns | Items
01 | 05/30/2017 15:30 | Blah | truck, elephant, apple, . . .
02 | 04/15/2012 07:07 | Bluh | foot, orange, horse, . . .
03 | 11/01/2016 10:30 | Wham | apple, screen, penny, . . .
我正在尝试在 Items 列中搜索每条记录并计算结果出现的次数。方便的是,每条记录只有一个水果,但如果解决方案能够处理多个水果(甚至可能是重复的),那就太酷了。上面的结果表如下所示
Count | Fruit
2 | Apple
1 | Orange
我有一份完整的“水果”清单。我试图弄清楚如何让它与 LIKE's 一起使用。
SELECT
count(PK) AS [Count]
??? AS [Fruit]
WHERE DateOf >= '2011-01-01 00:00' AND DateOf < '2012-01-01 00:00'
AND Items LIKE '%Apple%' --??(some kind of code that looks for the fruit values??)
【问题讨论】:
-
修复你的数据结构。在分隔字符串中存储项目列表不是 SQLish 存储数据的方式。
-
哦,相信我,如果我对此有任何控制权的话。这是一个赞助的 SQL Server,托管在我工作的公司的对面海岸。我唯一的访问权限是通过查询。出于某种原因,他们选择列出这样的项目
-
您可以使用
CHARINDEX找到字符串的位置,然后使用SUBSTRING将其拉出。像这样:stackoverflow.com/questions/10265841/…。但是你需要一个巨大的内联表达式才能把它弄出来
标签: sql sql-server