0
SELECT [schoolname] AS combinationschools, 
       CASE 
         WHEN [schoolname] LIKE '%/%' THEN (SELECT value 
                                            FROM 
         [dbo].[Split]('/', '#6/#9E/#9M')) 
       END          AS schoolname 
FROM   [dbo].[schools]; 

賢明なようにq sqlエラーが発生します-

サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。

4

3 に答える 3

3

これは、複数のSelect value from [dbo].Split値を返すためです。

于 2013-10-16T14:47:11.160 に答える
1

このようなサブクエリを使用する場合、各レコードの結果セットには 1 つのレコードのみを含めることができます。明らかに、テーブル Split には複数のレコードがあります。

サブクエリの代わりに結合を使用します。または、これをサブクエリの学校テーブルに結合して相関サブクエリにするか、Max または Min レコードのみを取得するか、thw サブクエリで何らかの where 句を作成して 1 つのレコードのみを取得します。テーブル構造とデータを確認しないと、何をすべきかを正確に判断するのは困難です。

于 2013-10-16T14:50:14.040 に答える
0

分割関数は、指定された例で単一行でキャッチできないテーブルを返すと思います分割関数は、単一行でキャッチできない次の3行を返します

#6
#9E
#9M 

分割関数でいくつかの変数を渡す必要があると思います

何か入れてくださいSelect value from [dbo].Split

于 2013-10-16T14:47:29.243 に答える