在特定文本值 SQL Server 之后选择行
Posted
技术标签:
【中文标题】在特定文本值 SQL Server 之后选择行【英文标题】:Select rows after specific text value SQL Server 【发布时间】:2015-09-28 08:40:39 【问题描述】:我的数据库有一列在我插入新行时会增加。它不会在数字上增加,而是由字母和数字混合而成。因此,不是执行 1(用于第一次插入)、2(用于第二次插入)、3(用于第三次插入)等等,而是执行 i_1、i_2、i_3 等等。我无法改变这种增加的方法。现在我会选择特定值之后的所有行(例如,在包含值 i_2 的行之后),但我不知道该怎么做,因为如果我执行“where column_name>'i_2',它会考虑字符串。
有人可以帮帮我吗? 非常感谢。
【问题讨论】:
【参考方案1】:您可以尝试在以下位置替换符号i_
:
WHERE REPLACE(column_name, 'i_', '') > 2
如果比较数字有任何问题,您可以在替换后将值转换为INT
。
WHERE CAST(REPLACE(column_name, 'i_', '') AS INT) > 2
【讨论】:
我用过你的方法,效果很好。非常感谢你。我能再问你一件事吗?如果我遇到 i_2 是 i_0000002 并且它没有作为整数增加而是作为十六进制数增加的情况,我应该执行 WHERE CAST(REPLACE(column_name, 'i_', '') AS HEX) > 0000002或者我应该使用函数 CONVERT 将字符串转换为十六进制数字?如本例所示:***.com/questions/219245/… @GracePii 您可以尝试将其转换为VARBINARY
,如下:CAST(REPLACE(column_name, 'i_', '') AS VARBINARY)
以上是关于在特定文本值 SQL Server 之后选择行的主要内容,如果未能解决你的问题,请参考以下文章