L'ODBC supporta la clausola CASE WHEN
per MS Access? C'è qualche altro database che non supporta la clausola CASE WHEN
? Ho provato la seguente query durante la connessione a MS Access con ODBC ma ottengo un'eccezione.MS Access supporta la clausola "CASE WHEN" se si connette con ODBC?
SELECT (CASE WHEN (AGE > 10) THEN 1 ELSE 0 END) FROM demo
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '(CASE WHEN (AGE > 10) THEN 1 ELSE 0 END)'
Sono cercare di trovare un modo comune che funziona per la maggior parte del database per generare (calcolo) il nuovo 'colonne booleane' con un'espressione di confronto, mentre la connessione con ODBC. In realtà, MS Access supporta il confronto nella clausola SELECT, ma per alcuni altri database è necessaria la clausola CASE. Per MS Access, SQL può essere
SELECT AGE > 10 FROM demo
ma in altri devono essere
SELECT (CASE WHEN (AGE > 10) THEN 1 ELSE 0 END) FROM demo
Mi sembra di ricordare che si usava 'IIF' in MS Access invece di' CASE' (non è specifico per ODBC, solo per l'Access generale). –
Sì, ma 'IIF' è specifico per MS Access. Voglio assicurarmi che ODBC supporti 'CASE' per MS Access. – Aaron
Quando si inviano istruzioni utilizzando ODBC, è necessario utilizzare SQL supportato dal database di destinazione. MS Access non supporta le istruzioni CASE, quindi le connessioni ODBC a MS Access non possono "supportarle". –