2011-10-04 2 views
-1

Je comprends le concept d'affinité de type et ai lu les "Types de données dans SQLite Version 3". Ce que je ne comprends pas, c'est comment deux champs, déclarés comme NUM (try float, double etc) dans une instruction CREATE et multipliés les uns avec les autres vont générer un résultat de type NULL. Existe-t-il un moyen de CAST ou de contraindre ou de soudoyer le SQLite pour produire un NUM lors de la duplication de deux NUM déclarés, par exemple: NUM * NUM = NUM?Opération SQLite Type de résultat

Par exemple:

CREATE TABLE A (id varchar(3) primary key not null, x real not null, y real not null) 
CREATE TABLE B AS SELECT x * y as z from A. 

La déclaration correspondante est

CREATE TABLE B(
    id TEXT, 
    x REAL, 
    y REAL, 
    z, 

De toute façon je peux obtenir un VRAI à côté du z ci-dessus?

+0

Eh bien, le produit d'un certain nombre d'une 'null' est nul ... –

+0

Pour être clair, il existe des données en A pour les x et y, valeurs numériques non nulles pour les deux champs. Et il y a des valeurs dans B pour x, y et z: les deux x et y sont REAL, mais z a le type NULL. z contient cependant des valeurs numériques. – auduf

+0

@auduf Permettez-moi de vous souhaiter la bienvenue à StackOverflow et de rappeler trois choses que nous faisons habituellement ici: 1) Comme vous recevez de l'aide, essayez de le donner aussi ** répondre aux questions ** dans votre domaine d'expertise 2) ['Read the FAQs' ] (http://tinyurl.com/2vycnvr) 3) Quand vous voyez de bonnes questions-réponses, votez-les en utilisant les triangles gris (http://i.imgur.com/kygEP.png), comme La crédibilité du système repose sur la réputation que les utilisateurs acquièrent en partageant leurs connaissances. Rappelez-vous également d'accepter la réponse qui résout mieux votre problème, le cas échéant, ['en appuyant sur le signe de la coche»] (http://tinyurl.com/4srwe2t) –

Répondre

1

Vous devez jeter le résultat:

CREATE TABLE B AS SELECT CAST(x * y AS REAL) as z from A. 
+0

Merci, très apprécié. L'utilisation de cast ci-dessus apparaît dans 3.2 "Affinité des opérandes de comparaison". Maintenant j'ai le contexte. Merci ldan. – auduf

Questions connexes