У меня может быть неправильное представление о том, как работает запрос.У меня есть таблица с 3 столбцами (id, int1, int2), которые меня интересуют. Int1 и int2 могут содержать положительные целые числа или символ «-».По независящим от меня причинам я не могу изменить формат и изменить «-» для представления целых чисел.Ниже мой запрос.
CREATE TABLE table1 AS (SELECT id, int1, int2 FROM CSVREAD(someCSV));
SELECT count(id)
FROM (SELECT id, int1, int2
FROM table1
WHERE int1 NOT LIKE '-' AND int2 NOT LIKE '-')
WHERE int1 > 100 AND int2 > 100;
Насколько я понимаю, внешний запрос должен использовать результат подзапроса, что означает, что внешний запрос не должен видеть никаких '-', но когда я пытаюсь выполнить это, я получаю следующееошибка
Ошибка преобразования данных: "-";
У меня есть обходной путь с помощью оператора case, но я хотел бы знать, почему это не работает, какЯ думал, что это будет.
Редактировать: я понял, что это звучит как столбец может иметь '-' между целыми числами.На самом деле запись будет иметь «-» или целое число, а не комбинацию обоих.Я добавил создание таблицы во фрагмент кода.
Пример таблицы (это также формат csv)
|---------|----------|--------|
| id | int1 | int2 |
|---------|----------|--------|
| 1 | 34 | 120 |
|---------|----------|--------|
| 2 | - | - |
|---------|----------|--------|
| 3 | 200 | 200 |
|---------|----------|--------|
| 4 | 15 | 90 |
|---------|----------|--------|
| 5 | 130 | 145 |
|---------|----------|--------|
Подзапрос возвращает все строки только с целыми числами