SQL Server- CASE WHEN THEN那么列表多个值

时间:2016-01-13 16:21:50

标签: sql sql-server case

我知道SQL CASE不会接受in list then语句的CASE部分。

我理想的是这样的情况:

CASE WHEN 'A' Then in list ['B' , 'C'] ELSE 'A' END

CASE WHEN 'A' Then 'B' or 'C' ELSE 'A' END

我正在使用此CASE语句作为设计SQL视图的一部分。

只是为了通知你,我已经检查了Multiple values in SQL CASE's THEN Statement,那里的答案对我没用。

编辑,问题描述和虚拟数据:

我的主要表是dbo.main 在此表中,我有表格中的数据

Year    CTG
2015    A
2015     B
2015    C
2015    D

在我的设计视图中,我对此表示赞同:

SELECT DISTINCT YEAR, 'GENRL' AS SETID, '000001' AS LABOR_AGREEMENT, CTG
FROM            dbo.main

现在我的最终目标是下表:

Year    CTG
2015    B/C
2015     B
2015    C
2015    D

CTG值是在另一个页面中启动另一个表格的关键,我希望该表格显示 CTG:B CTG:C <的所有值/强>

2 个答案:

答案 0 :(得分:0)

您可以使用搜索到的CASE

SELECT (CASE WHEN CTG = 'A' THEN 'B/C'
             ELSE CTG
        END)
FROM dbo.main

实际上,这也适用于简单的CASE

SELECT (CASE CTG WHEN 'A' THEN 'B/C'
             ELSE CTG
        END)
FROM dbo.main

答案 1 :(得分:0)

单行中的单个字段没有“或”可能性。单个colunm(字段)可以在一行中包含一个值。你要求的是什么,听起来像是可以通过带有额外值的第二列来解决(当案例适用时,或者为null),或者相反(但在你的问题中没有解决)一个额外的行,其上有额外的值。 /> 当您评论您想要“值”而不是连接(或其他)时,您可以生成额外列以适合第二个值,如下所示:

<html>
<head>
    <link rel="stylesheet" href="<?php echo base_url()?>css/style.css">
    <link rel="stylesheet" href="<?php echo base_url()?>css/tableCss.css">
    <script type="text/javascript" scr="<?php echo base_url()?>js/jquery-1.12.0.js"></script>
    <script type="text/javascript" scr="<?php echo base_url()?>js/projs.js"></script>
    <script type="text/javascript" scr="<?php echo base_url()?>js/jquery.validate.min.js"></script>
    <title>Questions</title>
</head>
<body>
    <div class="frm"><?php $a=array("id"=>"myForm","name"=>"myForm");
echo form_open('site/search',$a); ?>
        <div>
            <?php echo form_label('Question:','question'); ?>
            <?php echo form_input('question', set_value('question', @$_GET['question']), 'id="question"', 'name="question"'); ?>
        </div>
        <div>
            <?php echo form_label('Category:','category'); ?>
            <?php echo form_dropdown('category', $category_options, set_value('category', @$_GET['category']), 'id="category"', 'name="category"'); ?>
        </div>
        <div>
            <?php echo form_label('Score:','score'); ?>
        <?php echo form_dropdown('score_comparison', array('gt' => '>', 'gte' =>'>=' , 'eq' => '=', 'lt' => '<', 'lte' => '<='), set_value('score_comparison', @$_GET['score_comparison']), 'id="score_comparison"', 'name="score_comparison"'); ?>
        <?php echo form_input('score', set_value('score', @$_GET['score']), 'id="score"', 'name="score"'; ?>
         </div>
         <div>
             <?php echo form_submit('action','');?>
         </div>
         <?php echo form_close();?>
    </div>
   <script type="text/javascript">
    $(document).ready(function () {
        $("#myForm").validate({
            rules: {
                question: {
                    required: true
                }
            },
            messages: { 
                question:{
                    required: "Please enter some text" 
                }
            }
        });
    });
</script>
</body>
</html>