【发布时间】:2015-05-13 15:15:56
【问题描述】:
SQL Server 2008 R2
我有一张类似这样的表:
Example表:
ID Column
---------------
xxx1234
xxx12345
xxx123456
20150001
我正在尝试根据列的值是否符合特定格式来获取条件 MAX 值。使用上面的示例,第四条记录 20150001 表示“良好记录”,因为它包含当前年份和增量的开始。因此,在我的表中,被认为是“好”的记录(受我尝试编写的查询的影响)的格式为“年 + 增量”。不遵循此格式的前三个不应以查询为条件,因为它们与此格式不匹配,并且在计算最大值时不应受到约束。这些都是不良记录。在上面的例子中,预期的结果是“20150002”。
MAX 查询写起来很简单,但是我想知道一种方法,我可以清理查询以仅包含满足特定格式的那些记录,并将最后四位数字递增(0001 到 0002)。
TIA!
【问题讨论】:
-
会一直是
xx..还是会出现其他一些字符 -
所有数字都是“好”的?从 myTable 中选择 MAX(CONVERT(INT,ID))+1 其中 ISNUMERIC(ID) 1
-
其他字符会在那里。
-
@mxix 我马上去测试
-
@mxix 返回“将 nvarchar 值 'xxxx' 转换为数据类型 int 时转换失败。”
标签: sql sql-server sql-server-2008-r2