我将查询传递给运行该查询的内部应用程序并返回结果,连接是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 +'delimiter'+ ContractNo作为LinePrimaryKeys 同 PurchaseOrderNo +'delimiter'+ PurchaseOrderNo as LinePrimaryKeys
停止错误。那么现在我如何投射到字符串?
这不起作用。 ContractName +'cn'+ CAST(ContractName as nvarchar(50))为LinePrimaryKeys
答案 0 :(得分:4)
您必须使用& 而不是 + 。
& 执行字符串连接, + 执行(数字)添加。使用& 会自动将所有操作数强制转换为字符串。
select
PurchaseOrderNo,
PurchaseOrderDate,
Description,
Quantity,
PurchaseOrderNo & 'delimiter' & ContractNo as LinePrimaryKeys
from [POImport baseline.csv]