在特定文本值 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 之后选择行的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:仅过滤包含特定文本的行之后的行

在 Xcode 中输入时,当前行文本字体大小会增加

将固定长度的逐行文本文件转换为 SQL 并转置

SQL Server 导入导出向导 - 日期时间错误 - 特定值

linux下如何获得特定字符串前后几行文本

搜索模式并从文本中选择特定模式