0

私はSQLServerの専門家ではありません。クエリを実行しようとしています。クエリは、CSVを分割し、テーブルで結合を実行する関数に依存しています。次のような非常に基本的なクエリです。

SELECT 
  *
FROM
 [Order]
WHERE
 dbo.ConvertIDListToTable('1,2,3,4', ',') l INNER JOIN Order o ON l.item=o.ID

クエリを実行すると、次のエラーが発生します。

An expression of non-boolean type specified in a context where a condition is expected, near 'l'.

私は何が間違っているのですか?これは構文的なものでなければなりません。私はそれを見つめ続けます、しかしすべてのものは私には正しいように見えます。ありがとうございました。

4

3 に答える 3

1

構文的には、ステートメントINNER JOINの前にsを置く必要があります。さらに、ここではステートメントWHEREは必要ありません。WHERE

の正確なコードがわからないのConvertIDListToTableは邪魔ですが、それがテーブルを返すと仮定すると、次のことが必要だと思います。

SELECT *
FROM dbo.ConvertIDListToTable('1,2,3,4', ',') l 
INNER JOIN Order o ON l.item=o.ID
于 2013-02-07T15:56:09.447 に答える
0

WHERE句でJOINを使用することはできません。それは確かに構文上の問題です。

SQL ServerのSELECT構文を見てください:http://msdn.microsoft.com/en-us/library/ms189499.aspx

WHERE句の前にJOINする必要があります。クエリについてさらにヘルプが必要な場合は、クエリで何をしたいかを明確にしてください。

于 2013-02-07T15:56:15.917 に答える
0

このクエリ構造はmysqlからのものだと思います

SQL Serverでは、次のように記述します。

SELECT 
  *
FROM
 [Order] o 
 Inner join dbo.ConvertIDListToTable('1,2,3,4', ',') l
   ON l.item=o.ID
于 2013-02-07T15:57:22.937 に答える