Показать отрицательный реальный в таблице SQLite - PullRequest
0 голосов
/ 19 мая 2018

У меня есть столбец C типа REAL в таблице F в SQLite.Я хочу присоединиться к этому везде, где в другой таблице существует отрицательное значение F (вместе с некоторыми другими полями).

Однако -C или 0-C и т. Д. Все возвращают округленное значение C, например, когда Cсодержит «123,456», затем -C возвращает «-123».

Должен ли я сначала привести это значение через строку или синтаксис другой?? 1005 *

1 Ответ

0 голосов
/ 19 мая 2018

Похоже, что , в 123,456 предназначен для десятичного разделителя, но SQLite обрабатывает все это как строку (то есть '123,456', а не 123.456).Имейте в виду, что система типов SQLite немного отличается от системы SQL, так как значения имеют типы, но столбцы не :

[...] В SQLite тип данныхЗначение связано с самим значением, а не с его контейнером.[...]

Таким образом, вы можете спокойно поместить строку (которая выглядит как действительное число в некоторых локалях) в настоящий столбец, и ничего плохого не произойдет до тех пор, пока позже.

Выможно исправить процесс импорта, чтобы интерпретировать десятичный разделитель, как требуется, до того, как данные попадут в SQLite, или вы можете использовать replace, чтобы исправить их при необходимости:

sqlite> select -'123,45';
-123
sqlite> select -replace('123,45', ',', '.');
-123.45
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...