SQL Query Syntax Error - Spaces in Field Names

前端 未结 5 622
囚心锁ツ
囚心锁ツ 2021-02-08 13:49

The database my application uses has field names containing spaces. I believe this to be the cause of my problem. Here is a typical query:

SELECT * FROM \'OV2          


        
相关标签:
5条回答
  • 2021-02-08 13:50

    For Microsoft Access, wrap field names that contain spaces with back ticks e.g. SELECT `Eng Units` FROM Table

    0 讨论(0)
  • 2021-02-08 13:59

    That depends on the database engine you're using.
    For SQL Server, you have to put the field names in brackets: [ ]

    SELECT * FROM [OV2 BAS] AS bas 
    INNER JOIN [OV2 RefID] AS ids ON bas.[Ref ID] = ids.[Ref ID]
    WHERE ids.ENUM_H = 'TDischarge';
    
    0 讨论(0)
  • 2021-02-08 14:04

    You don't specify which DBMS you're using, but I'm guessing SQL server, so

    SELECT *
    FROM [OV2 BAS] AS bas
         ^^^^^^^^^
    

    ... enclose the field name in brackets. Using quotes as you are, turns the field name into a plain string, which will NOT be treated as a fieldname by SQL server.

    0 讨论(0)
  • 2021-02-08 14:13

    I don't think you can use quotes around the actual table name; only the name you assign to it. I would wrap the table in brackets instead: [OV2 BAS]

    You also can't put quotes around your joining syntax either. Try this instead:

    SELECT * FROM [OV2 BAS] AS bas INNER JOIN [OV2 RefID] AS ids ON bas.[Ref ID] = ids.[Ref ID] WHERE ids.ENUM_H = 'TDischarge';
    
    0 讨论(0)
  • 2021-02-08 14:17

    Replace ' with

    • postgreSQL, Oracle: "
    • MySQL `
    • SQL-server: [ and ]

    For example: "OV2 BAS", bas."Ref ID" = ids."Ref ID", etc.

    0 讨论(0)
提交回复
热议问题