选择一系列行作为各种列

时间:2017-07-12 09:54:51

标签: sql sql-server

在SQL Server中,我们有下一个情况:有一个看起来像这样的表。

Id    | Code  | Value
----- | ----- | -----
1     |    10 |     0
2     |    20 |     0
3     |    30 |     0
4     |    40 |     0
5     |    50 |     0
6     |    60 |     0
7     |    70 |     0
8     |    80 |     0
9     |    90 |     0
10    |   100 |     0

我想创建一个这个表的视图来显示它:

Code1 | Value1 | Code2 | Value2 | Code3 | Value3 | Code4 | Value4
----- | ------ | ----- | ------ | ----- | ------ | ----- | ------
   10 |      0 |    40 |      0 |    70 |      0 |   100 |      0
   20 |      0 |    50 |      0 |    80 |      0 | 
   30 |      0 |    60 |      0 |    90 |      0 | 

我尝试过子查询,但总是返回多行,我不认为在这种情况下我可以使用PIVOT ......我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

这是必须在应用程序端完成的事情。这是一种在sql(静态方法)中执行此操作的方法,批处理大小为3

        $to_ids_string = "";            
        $to_id = $this->input->post('to');            
        for ($r = 0; $r < count($this->input->post('to')); $r++) {
            if ($to_ids_string != "") {
                $to_ids_string = $to_ids_string . "," . $to_id[$r];
            } else {
                $to_ids_string = $to_id[$r];
            }                
        }
       echo $to_ids_string;
            $a = explode(',', $to_ids_string);
            foreach ($a as $item) {
                echo("<li>$item</li>");
                exit;
            }