在m_cell_info_4_5g表中,对Cell_Name字段进行处理,存储在Base_Name中,从第一个中文开始截取,分以下情况截取结束:在@前,在DL前,在1.前,在2.前,在3.前,在-8前
时间: 2024-11-15 19:27:20 浏览: 5
Cell_Delphi.rar_Cell_Delphi_cell_cell delphi_报表_报表 delphi
在`m_cell_info_4_5g`表中,如果需要将`Cell_Name`字段的内容转换并存储到`Base_Name`字段,你可以按照以下几个步骤操作:
1. **查找特定字符位置**:
- 使用SQL查询,找到`Cell_Name`中的中文字符的第一个位置。这通常涉及到正则表达式或者字符串函数来识别非英文字符的位置。
- 如果遇到`@`字符,则截取到该位置之前的部分。
- 如果遇到`DL`、`1.`、`2.`、`3.`或者`-8`,则分别检查它们的位置,并选择最早出现的那个作为截断点。
- 对于每个检查点,都需要确认它是否出现在中文字符之后,如果是,则以其为终点截取。
3. **存储结果**:
- 将截取得到的部分存入新的`Base_Name`字段,确保去除多余的空格或特殊字符。
具体的SQL示例可能如下:
```sql
UPDATE m_cell_info_4_5g
SET Base_Name =
CASE
WHEN CHARINDEX('中文', Cell_Name) > 0 THEN SUBSTRING(Cell_Name, 1, CHARINDEX('中文', Cell_Name))
ELSE Cell_Name
END
UNION ALL
CASE
WHEN CHARINDEX('@', Base_Name + '中文') > CHARINDEX('中文', Cell_Name) THEN LEFT(Base_Name, CHARINDEX('@', Base_Name + '中文'))
ELSE Base_Name
END
UNION ALL
... (类似处理其他可能的截断点)
```
记得替换`'中文'`为你使用的实际中文字符。注意实际编写时需考虑数据库的具体语法和性能优化,因为可能存在多个`UNION ALL`的情况。
阅读全文