2009-10-19 10 views
0

Je suis connecté à un serveur de données OpenEdge via ODBC (pas notre produit, nous accédons à leur base de données, je n'ai pratiquement aucune information et certainement pas d'aide de l'autre côté).Commande SQL ISNULL pour la connexion ODBC

De toute façon, j'ai juste besoin d'exécuter une simple sélection, ajouter quelques lignes et j'ai besoin de l'équivalent d'une instruction IsNull.

Fondamentalement, je voudrais exécuter

SELECT ISNULL(NULL,'test') 

Cela échoue avec une erreur de syntaxe. J'ai regardé autour de quelque chose qu'ils appellent de façon trompeuse une "documentation" mais il y a seulement des références à SP_SQL_ISNULL mais je ne peux pas obtenir que cela fonctionne non plus. Je suis en forme dans T-SQL, de sorte que tous les pointeurs dans tous les sens apprécié, même si elle est juste un RTFM avec un lien vers TFM :)

Merci

Répondre

5

Merci à Catalin et ce question je suis sur la bonne voie. J'ai continué à penser que j'avais besoin d'une fonction spécifique OpenEdge mais en fait je devais utiliser uniquement la syntaxe ODBC SQL.

Pour obtenir ce

ISNULL(col,4) 

ne vous pouvez utiliser

COALESCE(col,4) 

qui « renvoie le type d'expression de données avec la priorité la plus élevée de type de données. Si toutes les expressions sont nonnullable, le résultat est typé comme non annulable. " MSDN

Fondamentalement, il convertira en 4 si la valeur est nulle (et donc non convertible).

2

Je ne suis pas sûr à 100%, mais je pense que ODBC le pilote attend une instruction SQL valide et non une instruction SQL spécifique au SGBD, comme celle que vous avez fournie.

+0

Pourriez-vous nous donner d'autres explications? Voulez-vous dire que je devrais courir le select sur une table. Je suis en train de faire SELECT ISNULL (CountMe, 0) + ISNULL (CountMe2,0) FROM Table Merci –

Questions connexes