1

標準SQLと思われるものでクエリを作成し、MySQLでテストしました。

今、PostgreSQLでそれらを実行しようとすると、私は本当に理解していないあらゆる種類のエラーが発生します。MySQLで機能する元のクエリは次のとおりです。

CREATE VIEW popularCSsections AS (
    SELECT  sect.csid, COUNT(sc.sid) as numStudents
    FROM courseSection sect, studentCourse sc, department d
    WHERE sect.csid = sc.csid 
        AND sect.dcode = d.dcode 
        AND dname = "Computer Science"
    GROUP BY sect.csid
    HAVING numStudents > 2
);

このエラーが発生します:

psql:a2tables:60: ERROR:  column "Computer Science" does not exist
LINE 8:   AND department.dname = "Computer Science" 
                                 ^

エラーの性質を理解し、修正するのを手伝っていただけませんか。


追加の問題:

CREATE VIEW popularCSsections AS (
SELECT  sect.csid, COUNT(sc.sid) as numStudents
FROM courseSection sect, studentCourse sc, department d
WHERE sect.csid = sc.csid 
    AND sect.dcode = d.dcode 
    AND dname = 'Computer Science'
    GROUP BY sect.csid
    HAVING numStudents > 2
);

エラー:

psql:a2tables:70: ERROR:  column "numstudents" does not exist
LINE 8:  HAVING numStudents > 2
                ^
4

1 に答える 1

2

文字列を一重引用符で囲む必要があります。

 AND dname = 'Computer Science'

ここで起こっていることは、二重引用符が「識別子引用符」として解釈されていることです。これは、コンテンツをデータベース識別子(列またはテーブル名)として解釈することを示します。

于 2012-11-06T04:22:36.417 に答える