-2

私のウェブフォームにはいくつかのチェックボックスが含まれています。特定のチェックボックスがオンになっている場合は、spの選択クエリに列名を追加します。たとえば、chklname、chkfname、chkcity、chkmobileのような4つのチェックボックスがあるとします。chklnameとchkfnameをチェックすると、クエリは次のようになります。

SELECT LastName,FirstName FROM table1

spでそれを書く方法は?

4

2 に答える 2

2
CREATE PROCEDURE ProcName
    @chklname bit,
    @chkfname bit,
    @chkcity bit,
    @chkmobile bit
AS
BEGIN
SET NOCOUNT ON;

    --Only execute the statement if at least one of the checkboxes are set
    if @chklname = 1 or @chkfname = 1 or @chkcity =1 or @chkmobile =1 
        begin
        declare @sqlcommand nvarchar(max) 


        set @sqlcommand = N'Select '

        if @chklname = 1
            set @sqlcommand += N'FirstName '

        if @chkfname = 1
        begin
            if len(@sqlcommand) > 1
                set @sqlcommand += N','
            set @sqlcommand += N'LastName '
        end
        if @chkcity = 1
        begin
            if len(@sqlcommand) > 1
                set @sqlcommand += N','
            set @sqlcommand += N'City '
        end
        if @chkmobile = 1
        begin
            if len(@sqlcommand) > 1
                set @sqlcommand += N','
            set @sqlcommand += N'Mobile '
        end

        set @sqlcommand += N' FROM table1'

        exec sp_executesql @statement = @sqlcommand

    end
END
GO
于 2012-09-06T09:30:36.303 に答える
0

ここでできる最善のことは、フロントエンドコードを介してselectに含まれる列名の数を処理することです。

たとえば、4つのチェックボックスから、fnameとlnameのチェックボックスを2つだけ選択するとします。

したがって、sql selectステートメントを作成する前のフロントエンドで、ユーザーが選択したチェックボックスと選択していないチェックボックスを決定できます。これに基づいて、適切なselectステートメントを作成できます。

于 2012-09-06T09:20:51.553 に答える