0

サブクエリを使用してクエリを実行し、最初のクエリの1 つの列 () 内でサブクエリの結果を取得することは可能DropDownList styleですか?

Select Name, Year, (Select SchoolId from Schools) from SchoolRecords

Output :

--------------------------      List would be a DropDownList and if I open it I would get
| Name | Year | SchoolId |      the results of my subquery like so :
|      |      |          | 
--------------------------      ------------------
| Jim  | 2011 | List  || |      |             || |
|      |      |       \/ |      |             \/ |
--------------------------      ------------------
| Tom  | 2012 | List  || |      |    012312324   |
|      |      |       \/ |      |    123245465   |
--------------------------      |    456547787   | 
                                ------------------
4

1 に答える 1

1

SQL で値のドロップダウンを作成する方法はありません。しかし、学校の列にある学校のリストだけが必要な場合は、次を使用FOR XML PATHしてリストを取得できます。

Select Name, 
  Year, 
  STUFF((SELECT distinct ', ' + cast(s.SchoolId as varchar(10))
         from Schools s
         FOR XML PATH(''), TYPE
         ).value('.', 'NVARCHAR(MAX)') 
        ,1,2,'') schools
from SchoolRecords

デモで SQL Fiddle を参照してください

SchoolRecords次に、それぞれを特定のに関連付けたテーブルがあればschool、各ユーザーに関連付けられた学校のみを表示できます。

Select Name, 
  Year, 
  STUFF((SELECT distinct ', ' + cast(s.SchoolId as varchar(10))
         from Schools s
         inner join record_school rs
           on rs.schoolid = s.schoolid
         where r.id = rs.id
         FOR XML PATH(''), TYPE
         ).value('.', 'NVARCHAR(MAX)') 
        ,1,2,'') schools
from SchoolRecords r;

デモで SQL Fiddle を参照してください

于 2013-04-11T17:10:45.610 に答える