如何在此使用通配符?

时间:2018-01-09 06:41:00

标签: sql sql-server

我有这样一个表格:

+---------+--------------------+ 
|ID       | Component          |
+---------+--------------------+
|00241147 | 000000001000245598 |  
|00241147 | 000000001000090069 | 
|00249207 | 000000002510256707 | 
|00249208 | 000000002510245146 | 
+---------+--------------------+

我想只选择Component以'1'开头的那些行。

我正在使用以下代码:

select * from Table where Component like '%1%'

2 个答案:

答案 0 :(得分:4)

将它们转换为bigint并使用left()函数

读取1
select * from Table where left(cast(Component as bigint), 1) = 1

注意:以上假设Component列具有varchar数据类型

编辑:感谢您通过 Uwe Keim

进行演示澄清

http://sqlfiddle.com/#!6/1987d/4

答案 1 :(得分:2)

试试这个:

SELECT * FROM Table 
WHERE SUBSTRING(str_col, PATINDEX('%[^0]%', str_col+'.'), LEN(str_col)) LIKE '1%';