我在 SQL 中有一个表。我有一个名为 的列CarMakes
,它具有以下内容:
Mercedes, BMW
Range Rover
Mazda, Toyota, Honda
我想知道如何CarMakes
在每一行中返回一个数字。
返回值应分别为 2、1 和 3。
我在 SQL 中有一个表。我有一个名为 的列CarMakes
,它具有以下内容:
Mercedes, BMW
Range Rover
Mazda, Toyota, Honda
我想知道如何CarMakes
在每一行中返回一个数字。
返回值应分别为 2、1 和 3。
这是一个基于 MySQL 的答案,因此如果您使用其他东西,它可能不适合您的情况。这假设值是逗号分隔的并且在同一列中(相当一个假设:)):
SELECT car, (LENGTH(car)-LENGTH(REPLACE(car, ',', ''))+1) AS 'Counts'
FROM CarMakes
我确信这会在某处遇到问题,但如果您的情况不包含随机逗号,它可能会起作用。您可以在此处查看 SQLFiddle 。
SELECT COUNT(CarMakes), CarMakes FROM cartable ORDER BY CarMakes ASC
假设 T-SQL / MS SQL Server,你有两个选择: