计算在整个SQL Server表中找到单个字符的次数
如果SQL Server中有下表:计算在整个SQL Server表中找到单个字符的次数,sql,sql-server,while-loop,Sql,Sql Server,While Loop,如果SQL Server中有下表: CREATE TABLE #tv_shows ( tv_character varchar(50), show varchar(50), channel varchar(50) ); INSERT INTO #tv_shows (tv_character, show, channel) SELECT 'Peter', 'Family Guy', 'Fox' UNION ALL SELECT 'Ros|s', 'Friends', '
CREATE TABLE #tv_shows
(
tv_character varchar(50),
show varchar(50),
channel varchar(50)
);
INSERT INTO #tv_shows (tv_character, show, channel)
SELECT 'Peter', 'Family Guy', 'Fox'
UNION ALL SELECT 'Ros|s', 'Friends', 'NBC|'
UNION ALL SELECT 'Britta', 'Community', 'N|BC'
select * from #tv_shows
tv_character show channel
Peter Family Guy Fox
Ros|s Friends NBC|
Britta Community N|BC
我正在SQL Server中寻找一种方法来“循环”通过#tvshows
来计算在每列中找到
字符的次数。我要寻找的输出大致如下:
tv_character show channel
1 0 2
澄清编辑:我想以循环方式应用每列的计数,这样就不必为每列编写函数。i、 例如,可以应用于此处的3列示例或150列数据表的内容。尝试以下操作:
select sum(len([character]) - len(replace([character], '|', ''))),
sum(len(show) - len(replace(show, '|', ''))),
sum(len(channel) - len(replace(channel, '|', '')))
from [data.table]
试试这个:
select sum(len([character]) - len(replace([character], '|', ''))),
sum(len(show) - len(replace(show, '|', ''))),
sum(len(channel) - len(replace(channel, '|', '')))
from [data.table]
你可以用这样的东西
SELECT SUM(len(character) - len(replace(character, '|', ''))) AS character,
SUM(len(show) - len(replace(show, '|', ''))) AS show,
SUM(len(channel) - len(replace(channel, '|', ''))) AS channel
FROM data.table
你可以用这样的东西
SELECT SUM(len(character) - len(replace(character, '|', ''))) AS character,
SUM(len(show) - len(replace(show, '|', ''))) AS show,
SUM(len(channel) - len(replace(channel, '|', ''))) AS channel
FROM data.table
我想这让我大部分的路都走到了那里。虽然我对问题进行了编辑以进一步说明,但最初的问题是要求使用循环类型的解决方案,这样用户就不必为每个显式列编写代码。谢谢。我想这让我大部分时间都能到达那里。虽然我对问题进行了编辑以进一步说明,但最初的问题是要求使用循环类型的解决方案,这样用户就不必为每个显式列编写代码。谢谢。@bshelt141。这回答了最初的问题,也是第一个答案。我认为您应该接受这个答案,并询问另一个有关您想要的动态查询的问题。@bshelt141。这回答了最初的问题,也是第一个答案。我认为你应该接受这个答案,并询问另一个关于你想要的动态查询的问题。除了学术/学习情况,这在现实世界中似乎没有什么实际的好处。除了学术/学习情况,这在现实世界中似乎没有什么实实在在的好处。