2

グリッド ビュー表示の結合を含む、使用している選択クエリがあります。

SELECT [Theme].[Name], [ThemeType].[Type] 
FROM [Theme] 
Left Outer Join [ThemeType] ON [Theme].[ThemeTypeId] = [ThemeType].[PK_ThemeType] 
ORDER BY CASE WHEN [ThemeType].[Type] IS NULL THEN 1 ELSE 0 END, [ThemeType].[Type]

これは現在、すべてを返します。null の戻り値を表示しないか、null の戻り値のみを表示する機能と、SelectParameters を介して異なる入力を動的に取得する同じクエリからの機能が必要です。

基本的に、3 つのオプションを持つドロップ ダウン リストがあります。これらはすべて上に正しく表示されていますが、入力の値を変更して 3 つのオプションが得られるようにするには、選択パラメーターが必要です。

私は試した:

SELECT [Theme].[Name], [ThemeType].[Type] FROM [Theme] 
Left Outer Join [ThemeType] ON [Theme].[ThemeTypeId] = [ThemeType].[PK_ThemeType] 
WHERE [Theme].[ThemeTypeId] LIKE '%' 
ORDER BY CASE WHEN [ThemeType].[Type] IS NULL THEN 1 ELSE 0 END, [ThemeType].[Type]

% は変更可能ですが、これが示すのは null ではないことだけです....

データソースは次のとおりです。

<asp:SqlDataSource ID="SqlDataSource6" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" 
    SelectCommand="SELECT [Theme].[Name], [ThemeType].[Type] FROM [Theme] Left Outer Join [ThemeType] ON [Theme].[ThemeTypeId] = [ThemeType].[PK_ThemeType] ORDER BY CASE WHEN [ThemeType].[Type] IS NULL THEN 1 ELSE 0 END, [ThemeType].[Type]">
     <SelectParameters>
            <asp:QueryStringParameter Name="changeParam" Type="String" />
</SelectParameters>
4

3 に答える 3

1

コメントで指摘しようとしたように、COALESCEあなたが望むものを許可します...

SELECT [Theme].[Name], [ThemeType].[Type] FROM [Theme] 
Left Outer Join [ThemeType]
             ON [Theme].[ThemeTypeId] = [ThemeType].[PK_ThemeType] 
WHERE COALESCE([Theme].[ThemeTypeId], 'null') LIKE '%' 
ORDER BY CASE 
         WHEN [ThemeType].[Type] IS NULL 
         THEN 1 
         ELSE 0 
         END, [ThemeType].[Type]

整数である ThemeTypeId または 'null' で構成される文字列のいずれかがあり、LIKEたとえば'null', '%', ORと比較できます'%[0-9]%'

于 2013-07-26T15:51:42.540 に答える