SQLite中筛选以ABC-开头的字符串字段最大值问题
解决方案
修正后的查询逻辑
要实现需求,需要针对性调整SQL语句,核心是筛选目标前缀、提取数字部分并计算最大值后拼接前缀:
- 先过滤出以ABC-开头的记录
- 提取前缀后的数字片段并转为整数
- 取最大值后拼接回ABC-前缀,得到预期格式
替换后的VB.NET代码
Call CONNECTİON("DATA.db") ADAPTER = New SQLiteDataAdapter("SELECT 'ABC-' || MAX(CAST(SUBSTR(PAN_NO, 5) AS INTEGER)) AS max_pan_no FROM [PANEL] WHERE PAN_NO LIKE 'ABC-%'", CONN) TABLE = New System.Data.DataTable ADAPTER.Fill(CType(TABLE, System.Data.DataTable)) DG_1.DataSource = TABLE.DefaultView CONN.Close() ADAPTER = Nothing TABLE = Nothing
关键部分说明
WHERE PAN_NO LIKE 'ABC-%':仅保留以ABC-开头的PAN_NO记录SUBSTR(PAN_NO, 5):截取ABC-之后的内容(ABC-共4个字符,从第5位开始截取)CAST(...) AS INTEGER:将截取的字符串转为整数,确保能正确计算最大值'ABC-' || MAX(...):把计算出的最大数字拼接回ABC-前缀,生成你需要的格式
内容的提问来源于stack exchange,提问作者alican60
相关产品推荐
相关产品推荐

