用整数表示的MSSQL Case返回一个字符串

时间:2018-11-27 09:52:09

标签: sql sql-server tsql sql-server-2008

我在SSRS中的SELECT语句有问题。   我想使用整数返回字符串值。

我尝试使用此SELECT子句:

SELECT CASE @param = '1' THEN value like '__%' ELSE value like ' '

但是它不起作用,所以我尝试改用这个:

WHERE
((@param = '1' AND value like '__%') OR (@param = '0' AND value = '%'))

预期结果是:当大小写为“ 1”时,SELECT应该只返回非''的值。
   当大小写为“ 0”时,SELECT应该返回所有值=''+'__%'

谢谢您的帮助

3 个答案:

答案 0 :(得分:0)

您的案例条件格式错误。您错过了WHEN和END。应该是这样的:

@{

}

<h2>UploadImage</h2>


<head>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <title>Sample</title>
    <style>
        #drop-zone {
            margin-left: 32%;
            margin-top: 15%;
            width: 500px;
            min-height: 150px;
            border: 3px dashed rgba(0, 0, 0, .3);
            border-radius: 5px;
            font-family: Arial;
            text-align: center;
            position: relative;
            font-size: 20px;
            color: #7E7E7E;
        }

            #drop-zone input {
                position: absolute;
                cursor: pointer;
                left: 0px;
                top: 0px;
                opacity: 0;
            }
            /*Important*/

            #drop-zone.mouse-over {
                border: 3px dashed rgba(0, 0, 0, .3);
                color: #7E7E7E;
            }
        /*If you dont want the button*/

        #clickHere {
            display: inline-block;
            cursor: pointer;
            color: black;
            font-size: 17px;
            width: 150px;
            border-radius: 4px;
            background-color: #F5D56D;
            padding: 10px;
        }

            #clickHere:hover {
                background-color: #FCE085;
            }

        #filename {
            margin-top: 10px;
            margin-bottom: 10px;
            font-size: 14px;
            line-height: 1.5em;
        }

        .file-preview {
            background: #ccc;
            border: 5px solid #fff;
            box-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
            display: inline-block;
            width: 60px;
            height: 60px;
            text-align: center;
            font-size: 14px;
            margin-top: 5px;
        }

        .closeBtn:hover {
            color: red;
            display: inline-block;
        }
    </style>
</head>

<body>
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    @using (Html.BeginForm("UploadImage", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <div id="drop-zone">
            <p>Drop files here...</p>
            <div id="clickHere">
                or click here.. <i class="fa fa-upload"></i>
                <input type="file" name="file" id="file" multiple />
            </div>
            <div id="filename">
            </div>
            <button type="submit" class="btn btn-success"> Upload</button>
        </div>

        }
    </body>
<script>
    var dropZoneId = "drop-zone";
    var buttonId = "clickHere";
    var mouseOverClass = "mouse-over";
    var dropZone = $("#" + dropZoneId);
    var inputFile = dropZone.find("input");
    var finalFiles = {};
    $(function() {



        var ooleft = dropZone.offset().left;
        var ooright = dropZone.outerWidth() + ooleft;
        var ootop = dropZone.offset().top;
        var oobottom = dropZone.outerHeight() + ootop;

        document.getElementById(dropZoneId).addEventListener("dragover", function(e) {
            e.preventDefault();
            e.stopPropagation();
            dropZone.addClass(mouseOverClass);
            var x = e.pageX;
            var y = e.pageY;

            if (!(x < ooleft || x > ooright || y < ootop || y > oobottom)) {
                inputFile.offset({
                    top: y - 15,
                    left: x - 100
                });
            } else {
                inputFile.offset({
                    top: -400,
                    left: -400
                });
            }

        }, true);

        if (buttonId != "") {
            var clickZone = $("#" + buttonId);

            var oleft = clickZone.offset().left;
            var oright = clickZone.outerWidth() + oleft;
            var otop = clickZone.offset().top;
            var obottom = clickZone.outerHeight() + otop;

            $("#" + buttonId).mousemove(function(e) {
                var x = e.pageX;
                var y = e.pageY;
                if (!(x < oleft || x > oright || y < otop || y > obottom)) {
                    inputFile.offset({
                        top: y - 15,
                        left: x - 160
                    });
                } else {
                    inputFile.offset({
                        top: -400,
                        left: -400
                    });
                }
            });
        }

        document.getElementById(dropZoneId).addEventListener("drop", function(e) {
            $("#" + dropZoneId).removeClass(mouseOverClass);
        }, true);


        inputFile.on('change', function(e) {
            finalFiles = {};
            $('#filename').html("");
            var fileNum = this.files.length,
                initial = 0,
                counter = 0;

            $.each(this.files, function(idx, elm) {
                finalFiles[idx] = elm;

            });

            for (initial; initial < fileNum; initial++) {
                counter = counter + 1;

                $('#filename').append('<div id="file_' + initial + '"> <img src="file:///C:/Users/Ashwanth/Pictures/'+this.files[initial].name+'")/><span class="fa-stack fa-lg"><i class="fa fa-file fa-stack-1x "></i><strong class="fa-stack-1x" style="color:#FFF; font-size:12px; margin-top:2px;">' + counter + '</strong></span>' + this.files[initial].name + '<br><Button   class=" btn btn-primary closeBtn" onclick="removeLine(this)" title="remove">Remove</Button></div>');

            }
        });



    })

    function removeLine(obj) {
        inputFile.val('');
        var jqObj = $(obj);
        var container = jqObj.closest('div');

        var index = container.attr("id").split('_')[1];
        container.remove();

        delete finalFiles[index];
        console.log(finalFiles);
    }
</script>

编辑:据我所知,您想看到@ param ='1'的值,否则返回'__%'。如果是,则以下SELECT CASE WHEN @param = '1' THEN value like '__%' ELSE value like ' ' END 用法应该正确:

CASE

答案 1 :(得分:0)

我修复了我的自我状况 (((@column ='1'AND列,如'__%')或(@@ column ='0'AND列,如'_%'))

答案 2 :(得分:0)

WHERE
((@param = '1' AND value != '') OR (@param = '0'))

只需尝试