【问题标题】:Select rows after specific text value SQL Server在特定文本值 SQL Server 之后选择行
【发布时间】:2015-09-28 08:40:39
【问题描述】:

我的数据库有一列在我插入新行时会增加。它不会在数字上增加,而是由字母和数字混合而成。因此,不是执行 1(用于第一次插入)、2(用于第二次插入)、3(用于第三次插入)等等,而是执行 i_1、i_2、i_3 等等。我无法改变这种增加的方法。现在我会选择特定值之后的所有行(例如,在包含值 i_2 的行之后),但我不知道该怎么做,因为如果我执行“where column_name>'i_2',它会考虑字符串。

有人可以帮帮我吗? 非常感谢。

【问题讨论】:

    标签: java sql-server select


    【解决方案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 将字符串转换为十六进制数字?如本例所示:stackoverflow.com/questions/219245/…
    • @GracePii 您可以尝试将其转换为VARBINARY,如下:CAST(REPLACE(column_name, 'i_', '') AS VARBINARY)
    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2022-01-11
    • 2017-07-10
    • 2020-05-10
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    相关资源
    最近更新 更多