【问题标题】:Why does this query that uses string concatention throw an error in SQL Server Compact Edition?为什么这个使用字符串连接的查询会在 SQL Server Compact Edition 中引发错误?
【发布时间】:2012-08-09 20:16:11
【问题描述】:

我正在使用 SQL Server Compact Edition。我有一张简单的桌子:

CREATE TABLE people (
    ident NCHAR(7) NOT NULL UNIQUE,
    first_name NVARCHAR(100) NOT NULL, 
    last_name NVARCHAR(100) NOT NULL,
    notes NVARCHAR(4000) NULL,
    birth_year SMALLINT NULL,
    birth_location NVARCHAR(200) NULL,
    amount SMALLINT NULL,
    location NCHAR(6) NOT NULL,
    title_date INT NOT NULL,
    num INT NOT NULL UNIQUE,
    PRIMARY KEY (ident)
);

还有一个简单的插入语句:

INSERT INTO people (ident, first_name, last_name, notes, birth_year, birth_location, amount, location, title_date, num)
VALUES ('t1bbbee', 'Sam', 'Simpson', 'HKiONV6JGxKdd2qs5pQ3GGWlrSPRSfu19cJ6zyEn2qT1WHyv5N', 2007, 'N6fCeYVqJcjDov9DDmLfkpYtGs0WV4QeSVRaKm659lw52W21TX', 1143, 'YcbKbv', 19805274, 7735)

根据我对documentation 的阅读,一个简单的查询应该可以正常工作:

SELECT p.ident + "-" + p.first_name + " " + p.last_name AS "name"
FROM people AS p 
ORDER BY p.ident

但是,这会在 Visual Studio 和 SQL Fiddle(后者使用 SQL Server,而不是 SQL Server CE)中返回错误:

列名 '-' 无效。:SELECT p.ident + "-" + p.first_name + " " + p.last_name AS "name" FROM people AS p ORDER BY p.ident

有什么问题?

【问题讨论】:

    标签: sql-server sql-server-ce string-concatenation


    【解决方案1】:

    您使用的是双引号而不是单引号:

    SELECT p.ident + '-' + p.first_name + ' ' + p.last_name name
    FROM people AS p 
    ORDER BY p.ident
    

    SQL Fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多