2015-09-28 30 views
1

我有一列数据库,当我插入新行时,这个列会增加。它不会在数字上增加,但是会混合使用字母和数字。因此,不要做1(对于第一次插入),2(对于第二次插入),3(对于第三次插入)等等,它会做i_1,i_2,i_3等等。我无法改变这种增加的方法。现在我会选择特定值之后的所有行(例如,在包含值i_2的行之后),但我不知道如何做,因为如果我做“where column_name>'i_2'它认为长度。?字符串在特定文本值之后选择行SQL Server

有人可以帮助我,请 非常感谢

回答

3

你可以尝试以下替换符号i_

WHERE REPLACE(column_name, 'i_', '') > 2  

如果将与比较数字的任何问题,你可以替换后将值转换为INT

WHERE CAST(REPLACE(column_name, 'i_', '') AS INT) > 2 
+0

我已经使用你的方法,它的工作原理。非常感谢你。我能再问你一件事吗?如果我有这样的情况,其中i_2是i_0000002,它不是以整数形式增加,而是以十六进制数形式增加,我应该做WHERE CAST(REPLACE(column_name,'i_','')AS HEX)> 0000002或者我应该使用函数CONVERT将字符串转换为十六进制数字?在这个例子中:http://stackoverflow.com/questions/219245/converting-a-string-to-hex-in-sql – Grancein

+1

@GracePii你可以尝试在下面的'VARBINARY'中强制转换:'CAST(REPLACE (column_name,'i_','')AS VARBINARY)' –

+1

你是个大人物!谢谢。它完美的工作! ;) – Grancein

相关问题