Как объединить две строки с поставщиком Jet.OLEDB.4.0 - PullRequest
3 голосов
/ 19 мая 2009

Я передаю запрос во внутреннее приложение, которое выполняет этот запрос и возвращает результат, соединение с файлом CSV, и я соединяюсь с Provider = Microsoft.Jet.OLEDB.4.0

Я бы хотел объединить строки в один столбец, но я получаю сообщение об ошибке.

Можно ли это сделать, кто-нибудь знает, как это сделать?

Пример того, что я делаю:

select 
 PurchaseOrderNo, 
 PurchaseOrderDate, 
 Description, 
 Quantity,
 ContractName + 'delimiter' + ContractNo as LinePrimaryKeys
from [POImport baseline.csv]

ошибка: - Ошибка - поставщик не смог определить значение Double. Например, строка была только что создана, значение по умолчанию для столбца Double было недоступно, а потребитель еще не установил новое значение Double.

Из другого прочтения похоже, что оба значения, к которым я присоединяюсь, не распознаются как строки.

например, замена PurchaseOrderNo + 'разделитель' + ContractNo как LinePrimaryKeys с PurchaseOrderNo + 'разделитель' + PurchaseOrderNo как LinePrimaryKeys

останавливает ошибку. Так что теперь, как я могу привести к строке?

Это не работает. ContractName + 'cn' + CAST (ContractName как nvarchar (50)) как LinePrimaryKeys

1 Ответ

4 голосов
/ 19 мая 2009

Вы должны использовать & вместо + .

& выполняет конкатенацию строк, + выполняет (числовое) сложение. Использование & автоматически приводит все операнды к строкам.

select 
 PurchaseOrderNo, 
 PurchaseOrderDate, 
 Description, 
 Quantity,
 PurchaseOrderNo & 'delimiter' & ContractNo as LinePrimaryKeys
from [POImport baseline.csv]
...