Мне нужно SELECT
все строки, где column1
не имеет указаний 0
. column1
имеет тип данных String
.Получить все строки, которые не имеют нулевого нуля
column1
0987654321
2345567887
0233445566
3422245666
Мне нужно SELECT
все строки, где column1
не имеет указаний 0
. column1
имеет тип данных String
.Получить все строки, которые не имеют нулевого нуля
column1
0987654321
2345567887
0233445566
3422245666
ANSI SQL Ответ:
select * from tablename
where substring(column1 from 1 for 1) <> '0'
Некоторые СУБД имеют SUBSTR(column1, 1, 1)
вместо этого, или LEFT(column1, 1)
.
OP, обратите внимание, что «SELECT *' - это плохая практика - вы должны «ВЫБРАТЬ» только столбцы, которые вы хотите отобразить. (Плакат этого ответа не знает, какие столбцы у вас настолько корректно дефолтны на 'SELECT *') – Eilidh
Я предполагаю, вы говорите о символьном поле, как числовое поле не будет отображаться с ведущими 0, если только вы не форматировать его ... все равно
для символьного поля вы бы выбрать ...
WHERE column1 NOT LIKE '0%'
в случае числового поля вы можете выбрать ...
WHERE column1 >= 1000000000
Есть несколько способов для того чтобы достигнуть этого. Вот три примера работы для dbms oracle (я не знаю ваших dbms).
-- using substr
select * from
(select '0123' t from dual union
select '123' t from dual union
select '5123' t from dual union
select '413123' t from dual union
select '0454' t from dual) tab
where substr(tab.t,0,1) != 0;
-- using regex
select * from
(select '0123' t from dual union
select '123' t from dual union
select '5123' t from dual union
select '413123' t from dual union
select '0454' t from dual) tab
where regexp_like(tab.t,'^[^0]');
-- using the like operator
select * from
(select '0123' t from dual union
select '123' t from dual union
select '5123' t from dual union
select '413123' t from dual union
select '0454' t from dual) tab
where tab.t not like '0%';
Ну, вам нужно проверить, равен ли первый символ нулю или нет. Используйте SUBSTR
.
SELECT COLUMN FROM TABLE WHERE SUBSTR(COLUMN,1,1) <> '0';
Я думаю, что вы не правы. Мы не знаем, что такое rdbms. Итак, ваш ответ неверен, потому что для примера MSSQL Server не имеет функции 'SUBSTR' – Marusyk
вопрос ответа, но вы также можете попробовать
SELECT LEFT(column1, 1) AS firstLetter
FROM <table>
WHERE colum1 => 1
Он прекрасно работает со строками.
Какой тип данных? – jarlh
Можете ли вы показать нам, что вы сделали до сих пор? – Marusyk
и какие dbms вы используете? – SomeJavaGuy