Различные результаты .mdb против .odb, почему? - PullRequest
0 голосов
/ 11 июня 2009

Я использую следующий запрос для извлечения данных из файла .mdb через JDBC, однако, когда я пробую его для файла .odb, он не выдает никаких исключений, но результатов вообще нет. Мне интересно, чувствителен ли регистр .odb, где нет .mdb или я что-то упускаю?

"ВЫБЕРИТЕ DISTINCT column-one + ':' + column-two As ResultColumn FROM datatable;"

Как мне создать один оператор, который будет работать с обоими типами файлов?

Ответы [ 2 ]

1 голос
/ 12 июня 2009

Некоторые предложения:

1) Попробуйте использовать одинарные кавычки вместо двойных, например,

SELECT DISTINCT column-one + ':' + column-two As ResultColumn FROM datatable;

2) Возможно, синтаксис SQL источника .odb обрабатывает конкатенацию по-разному, например. с .mdb '+' NULL s будет распространяться, что означает, что если хотя бы одно из значений столбца равно NULL, то результатом будет NULL; символ конкатенации '&' будет игнорировать NULL значений, например это в .mdb земле

SELECT DISTINCT column-one & ':' & column-two As ResultColumn FROM datatable;

эквивалентно этому в стандарте ANSI / ISO SQL-92 (который не поддерживается в .mdb land)

SELECT DISTINCT COALESCE(column-one, '') + ':' + COALESCE(column-two, '') As ResultColumn FROM datatable;

3) Если два источника не поддерживают один и тот же синтаксис, вы можете использовать функциональность связанных таблиц .mdb для связи таблиц из источника .odb в .mdb и использовать только код SQL в. MDB

1 голос
/ 11 июня 2009

Они будут отличаться, потому что это два разных продукта, написанных двумя разными компаниями, и программисты сделали разные выборы относительно того, как обращаться с вещами.

Вы пытались использовать указанный псевдоним столбца, возможно, что-то более описательное, чем Expr1000?

SELECT DISTINCT column-one + ":" + column-two As Expr1000 FROM datatable

Вот так я бы написал в SQL Server, проверив вашу базу данных, чтобы убедиться, что это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...