私のアプリケーションが使用するデータベースには、スペースを含むフィールド名があります。これが私の問題の原因だと思います。典型的なクエリは次のとおりです。
SELECT * FROM 'OV2 BAS' AS bas
INNER JOIN 'OV2 RefID' AS ids ON 'bas.Ref ID' = 'ids.Ref ID'
WHERE ids.ENUM_H = 'TDischarge';
フィールド名のスペースをどのように処理しますか?ありがとう。
追加情報
これは、MS Access 2007(Microsoft.ACE.OLEDB.12.0)で作成されたデータベースにアクセスするためのものです。
実際のテーブル名を引用符で囲むことはできないと思います。割り当てた名前のみ。代わりに、テーブルを角かっこで囲みます:[OV2 BAS]
また、結合構文を引用符で囲むこともできません。代わりにこれを試してください:
SELECT * FROM [OV2 BAS] AS bas INNER JOIN [OV2 RefID] AS ids ON bas.[Ref ID] = ids.[Ref ID] WHERE ids.ENUM_H = 'TDischarge';
'
をに置き換えます
"
`
[
および]
例:"OV2 BAS"
、bas."Ref ID" = ids."Ref ID"
など。
Microsoft Accessの場合、スペースを含むフィールド名をバックティックでラップします。テーブルから「英国工学単位系」を選択
これは、使用しているデータベースエンジンによって異なります。
SQL Serverの場合、フィールド名を角かっこで囲む必要があります:[ ]
SELECT * FROM [OV2 BAS] AS bas
INNER JOIN [OV2 RefID] AS ids ON bas.[Ref ID] = ids.[Ref ID]
WHERE ids.ENUM_H = 'TDischarge';
使用しているDBMSを指定していませんが、SQLサーバーを推測しているので
SELECT *
FROM [OV2 BAS] AS bas
^^^^^^^^^
...フィールド名を角かっこで囲みます。引用符をそのまま使用すると、フィールド名がプレーンな文字列に変換されます。これは、SQLサーバーではフィールド名として扱われません。