所以,我想知道是否可以使用SQL计算变量出现在表中的次数。
示例表:
ID TextColumn
1 foo
2 foo foo foo
3 bar
$var = "foo";
将$var
的所有列和$var
的订单按从最高到最低的顺序返回。
示例结果:
(1)ID=2,count=3 (2)ID=1,count=1
这是否可以仅使用SQL?
我之前问了一个类似的问题但是它不清楚,所以如果这个问题也不清楚,请告诉我。
答案 0 :(得分:1)
如果您使用的是SQL Server,则可以使用LEN
和REPLACE
执行此操作:
DECLARE @var VARCHAR(MAX) = 'foo'
SELECT *,
(LEN(TextColumn) - LEN(REPLACE(TextColumn, @var, ''))) / LEN(@var)
FROM tbl
WHERE
CHARINDEX(@var, TextColumn) > 0
ORDER BY
(LEN(TextColumn) - LEN(REPLACE(TextColumn, @var, ''))) / LEN(@var) DESC