SQL:从组中提取常用字符串

时间:2018-05-10 21:59:12

标签: sql sql-server substring

我有一个包含位置和设备名称的表。我想保留组内匹配的设备名称部分。

location_code | device_name      | location
1               Building_1_in      Building_1
1               Building_1_out     Building_1
1               Building_1_gate    Building_1
2               Drive 3 gate2      Drive 3
2               Drive 3 gate1      Drive 3
2               Drive 3 keypad     Drive 3

我有位置代码和设备名称,但我正在尝试创建location列。我不能使用SUBSTRING函数,因为目标字符串的长度不同,我不能使用CHARINDEX函数,因为没有一致的分隔符。此外,编写location_code函数的CASE WHEN太多了。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

总体思路: 您可以按location_code和设备名称对表排序进行排序。然后,您可以为每个location_code提取第一个和最后一个的公共开头部分。