2017-07-28 76 views
1

私はwith節を使用していますが、私は最近奇妙な問題に遭遇しました。単純なクエリでも、私は誤った構文エラーが返ってきています。なぜそうなるのか分かりません。私はのような単純なコードを実行するたびに句付き、 ')'の近くの構文が正しくありません。 (SQL Server 2016)

WITH table1 AS (Select value1, value2 from table1) 

私は「近くに無効な構文 『)』」エラーが発生します。

私は問題なくこれを使い始めていました。私は本当に明白な間違いを犯しているように思います。誰かが間違っていることを指摘できますか?

+4

このスクリプトの前に*のSQL文がありますか? 'CTE'の場合、*前の*文は'; 'で終わらなければなりません。 – Siyual

+3

あなたの声明は完全ではありません。 CTEで何かをする必要があります。 – Eric

+0

上記の行がすべてのSQL文である場合は、文が不完全でエラーが発生します。 – DVT

答えて

6

これはCTEです。最後に選択する必要があります。

すなわち

WITH cte AS (
    SELECT 
     value1, 
     value2 
    FROM table1 
) 
SELECT * FROM cte 

また、CTEを有するあなたから引っ張っている、そこからテーブルと同じ名前の、非常に良いアイデアではありません。あなたは両方ともtable1としていました。

+0

これは実際に私が描いているテーブル(またはカラム)の名前ではないので、私は質問のためにそれらの代わりに汎用変数名を使用しました。 ありがとうございます!私はそれを感謝します –

+0

それはエリの答え@ジョシュクラッシャーとは何が関係がありますか? – scsimon

+0

@scsimonは私が想像する最終的な文章に応答します。 –

関連する問題