SQL Server WHERE子句

use*_*443 0 where sql-server-2008

我有一个SQL Server数据库,我想定义一个查询,该查询仅根据int列中的前两个数字返回结果.

就像是:

SELECT * FROM myTable WHERE myIntColumn = 13% 
Run Code Online (Sandbox Code Playgroud)

因此,将返回包含13,133,134和1380的任何行

gbn*_*gbn 5

没什么好看的,只需更改为varchar和模式匹配.

SELECT * FROM myTable
  WHERE CAST(myIntColumn as varchar(10)) LIKE '13%'
Run Code Online (Sandbox Code Playgroud)

你可以整数除以10的幂,但它是一个循环或递归

;WITH cTE AS
(
    SELECT TOP 9
        POWER(10, ROW_NUMBER() OVER (ORDER BY column_id)) AS divisor
    FROM
        sys.columns
)
SELECT
   *
FROM
   myIntColumn
   JOIN
   cTE ON myIntColumn / divisor = 13
Run Code Online (Sandbox Code Playgroud)