Как запросить допустимое целое число, если оно хранится в виде varchar в sql?

#sql

Вопрос:

Я клонировал файл .csv в свою таблицу базы данных в SQL, и пример данных выглядит так :

 [
    {
        "year": "1955",
        "rank": "1",
        "company": "General Motors",
        "revenue": "9823.5",
        "profit": "806"
    },
    {
        "year": "1955",
        "rank": "2",
        "company": "Exxon Mobil",
        "revenue": "5661.4",
        "profit": "584.8"
    },
 

В некоторых столбцах прибыли есть «N. A.», а также ОТРИЦАТЕЛЬНЫЕ целые числа, но все эти значения хранятся в таблицах SQL в виде «строк» или VARCHAR..

итак, как я могу запросить данные, которые являются числом или не равны «N. A.» (в основном мне просто нужны данные, включающие любое целое число, положительное или отрицательное) в sql? Я пробовал ISNUMERIC (), но он говорит, что мне нужно выполнить приведение типа?

sql

Комментарии:

1. Вы должны ПОМЕТИТЬ свою конкретную платформу базы данных.

2. Базы данных имеют разные методы. Было бы полезно, если бы вы могли указать, какой из них вы используете. SQL Server? MySQL? Оракул? PostgreSQL?

3.>> try_parse()

4. Это массив JSON, хранящийся в одном столбце?

Ответ №1:

Если вы используете MySQL или MariaDB и интересуетесь только десятичными числами, вы можете использовать ПРИВЕДЕНИЕ следующим образом:

 SELECT CAST(profit as DECIMAL(5,2)) as profit_mod;
 

Это даст вам 0,00 для нечисловых значений. Или вы можете привести как ЦЕЛОЕ ЧИСЛО, чтобы получить целые числа — или 0 для нечисловых значений.

В зависимости от разновидности sql у вас могут быть разные варианты.

Комментарии:

1. Нет, это вернет ошибку в некоторых СУБД: SQL Server , postgres , Oracle