2013-03-22 23 views
5

Chciałbym wstawić wartości NaN do bazy danych SQLite.Przechowywanie wartości NaN w bazie danych SQLite

Mam tabelę Ent z id, StringColumn i DoubleColumn (pustych) i próbuję użyć następującej instrukcji SQL:

INSERT INTO Ent (Id, StringColumn, DoubleColumn) VALUES (1, 'NaN test', ????) 

nie wiem co wpisać w miejsce „???? " aby zachować NaN.

Mam dostęp do bazy danych przy użyciu System.Data.SQLite - może to również ma znaczenie?

+0

Zamiast tego można użyć wartości NULL? To służy podobnemu celowi. – SDC

Odpowiedz

1

SQLite nie ma tekstowej reprezentacji wartości NaN.

W języku SQL specjalny NULL zachowuje się podobnie w obliczeniach i może służyć do tego samego celu.

+0

Dziękuję za podpowiedź. Próbowałem użyć w tym przypadku wartości null, ale pojawia się komunikat o błędzie "Przerwij z powodu naruszenia ograniczeń." Kolumna Ent.DoubleColumn może nie być pusta ". Jedynym sposobem, aby to zadziałało, jest zmiana DoubleColumn na zerowalną. –

1

Sztuczka, którą obecnie stosuję, to przechowywanie -Infinity na prawdziwych kolumnach, gdy wartość null nie wystarczy lub jest niedozwolona (ponieważ w tej kolumnie jest "nie zero").

4

SQLite jest raczej ... luźny ... o typach danych. Możesz umieścić "NaN" w kolumnie zdefiniowanej jako "double". Lub "nieskończoność". Lub "podwójne", o to chodzi. SQLite nie obchodzi.

Powiązane problemy