SELECT
CONCAT(
SUBSTRING_INDEX(street_name, '街道', 1),
'街道'
) AS short_street_name
FROM your_table_name;
这个SQL查询语句的目标是从street_name字段中提取街道名称,并在其后加上“街道”后缀。如果street_name字段中不包含“街道”,则保持原样。以下是修改后的SQL语句,以满足这个需求:
SELECT
CASE
WHEN INSTR(street_name, '街道') > 0 THEN
CONCAT(
SUBSTRING_INDEX(street_name, '街道', 1),
'街道'
)
ELSE
street_name
END AS short_street_name
FROM your_table_name;
这个查询使用了CASE语句来检查street_name中是否包含“街道”。如果包含,它会使用SUBSTRING_INDEX来提取“街道”之前的部分,并加上“街道”后缀。如果不包含,它会直接返回原始的street_name。
在Java中,您可以使用字符串的indexOf方法来查找子字符串的位置,使用substring方法来提取子字符串。以下是Java代码,实现与SQL查询相同的逻辑:
import java.util.ArrayList;
import java.util.List;
public class StreetNameShortener {
public static void main(String[] args) {
// 示例数据
List<String> streetNames = new ArrayList<>();
streetNames.add("中山南路街道xxxx");
streetNames.add("和平路");
streetNames.add("人民东路街道xxxxxx");
streetNames.add("建设路");
// 处理街道名称
List<String> shortStreetNames = new ArrayList<>();
for (String streetName : streetNames) {
String shortStreetName = getShortStreetName(streetName);
shortStreetNames.add(shortStreetName);
}
// 打印结果
for (String shortStreetName : shortStreetNames) {
System.out.println(shortStreetName);
}
}
private static String getShortStreetName(String streetName) {
int index = streetName.indexOf("街道");
if (index > 0) {
return streetName.substring(0, index) + "街道";
} else {
return streetName;
}
}
}
在这个示例中,getShortStreetName方法接收一个街道名称,并检查是否包含“街道”。如果包含,它会截取“街道”之前的部分并添加“街道”后缀;如果不包含,它将返回原始街道名称。主方法main创建了一个街道名称列表,并使用getShortStreetName方法处理每个街道名称,最后打印出处理后的结果。