【问题标题】:Query to find whether first and second positions of a column has numbers?查询一列的第一个和第二个位置是否有数字?
【发布时间】:2015-11-19 12:09:48
【问题描述】:

如果我的列具有 varchar 值,例如

07SNBYDT
20NETHRR
23198BER
12837930
BEYTRETY
1245YHTY

在上述值中,我只需要在 firstsecond 位置具有数字并且在 third 位置具有字母的条目
例如:07SNBYDT

我的预期输出是

07SNBYDT
20NETHRR

【问题讨论】:

    标签: sql sql-server sql-server-2008 wildcard


    【解决方案1】:

    使用like:

    select t.*
    from t
    where col like '[0-9][0-9][a-zA-Z]%';
    

    【讨论】:

      【解决方案2】:
      SELECT Col
      FROM Table
      WHERE ASCII(SUBSTRING(Col, 0, 1)) > XX AND ASCII(SUBSTRING(Col, 0, 1)) < YY 
      AND ASCII(SUBSTRING(Col, 1, 1)) > XX AND ASCII(SUBSTRING(Col, 1, 1)) < YY
      AND (ASCII(SUBSTRING(Col, 2, 1)) < XX OR ASCII(SUBSTRING(Col, >, 1)) > YY)
      

      其中 XX 是 ASCII (0) 而 YY 是 ASCII(9)

      【讨论】:

        【解决方案3】:
        select *
        from table 
        where isnumeric(substring(col,1,1)) = 1
        and isnumeric(substring(col,2,1)) = 1
        and substring(col,3,1) LIKE '[a-zA-Z]%'
        

        【讨论】:

          猜你喜欢
          • 2018-04-04
          • 1970-01-01
          • 2015-07-23
          • 1970-01-01
          • 2017-02-13
          • 2018-05-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多