Как использовать подстановочные знаки в этом?

80
6

У меня есть таблица такого типа:


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

Я хочу выбрать только те строки, где компонент начинается с "1".


Я использую следующий код:


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

спросил(а) 2018-01-09T09:40:00+03:00 2 года, 8 месяцев назад
1
Решение
89

Передайте их как bigint и прочитайте 1, используя left() функцию


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

Примечание. Это выше предполагает, что столбец Component имеет тип данных varchar

EDIT: Спасибо за демонстрацию для разъяснения Уве Кейм


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

ответил(а) 2018-01-09T09:46:00+03:00 2 года, 8 месяцев назад
70

Попробуйте следующее:

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

ответил(а) 2018-01-09T09:47:00+03:00 2 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема