Sql server 用于根据列中的第一个单词(文本)将记录分组在一起的SQL查询

Sql server 用于根据列中的第一个单词(文本)将记录分组在一起的SQL查询,sql-server,Sql Server,我试图以这样一种方式呈现表中的记录,即根据列中的第一个单词文本对记录进行分组和计数 我的SQL Server表如下所示: BinID BinName 2070 (for item PMI-67281) 3078 1 (for item PMI-14233) 2914 1 (for item PMI-1600537) 5272 1702 (for item 004908A) 5004 1702 (for item 0332002225BLK) 4019 1

我试图以这样一种方式呈现表中的记录,即根据列中的第一个单词文本对记录进行分组和计数

我的SQL Server表如下所示:

BinID   BinName
2070     (for item PMI-67281)
3078    1 (for item PMI-14233)
2914    1 (for item PMI-1600537)
5272    1702 (for item 004908A)
5004    1702 (for item 0332002225BLK)
4019    1702 (for item 0332204204)
1208    1A1 (for item BWB2)
1662    1A1 (for item BWB27)
1212    1A1 (for item BWB31)
1213    1A1 (for item BWB35-S)
2583    1A2 (for item BWBT359)
1234    1A2 (for item BWBT364)
1266    1A3 (for item BWB1438)
2418    1A5 (for item 1006101)
2008    1A5 (for item 107794X)
1281    1ATOP (for item BWPA3493)
1218    1B1 (for item BWB161-S)
我的要求结果如下:

BinID   BinName Count
5272    1702 (for item 004908A) 
5004    1702 (for item 0332002225BLK)   
4019    1702 (for item 0332204204)  3
1208    1A1 (for item BWB2) 
1662    1A1 (for item BWB27)    
1212    1A1 (for item BWB31)    
1213    1A1 (for item BWB35-S)  4
2583    1A2 (for item BWBT359)  
1234    1A2 (for item BWBT364)  2
1266    1A3 (for item BWB1438)  1
2418    1A5 (for item 1006101)  
2008    1A5 (for item 107794X)  2
1281    1ATOP (for item BWPA3493)   1
1218    1B1 (for item BWB161-S) 1

您可以通过使用LEFT和CHARINDEX函数来实现这一点——使用它来查找第一个空格,并按空格排序,或按空格分组,或执行任何您希望执行的操作

SELECT    BinID
         ,BinName
FROM      TABLE
ORDER BY  LEFT(BinName,CHARINDEX(' ', BinName)-1)