如何将数据过滤到新列? SQL

时间:2012-04-19 14:03:25

标签: sql sql-server

Hallo亲爱的Stackoverflow用户。

在sql server上使用sql

我搜索了论坛和互联网,但没有找到有关我想要实现的信息。主要是因为我不知道正确的术语。

我创建了一个新视图,我想将列(ver_klass)中的不同数据过滤到新创建的列。

下图是我的观点目前的样子。

enter image description here

这就是我想表达观点的方式:

ver_rayon  |ver_metier |ver_secteur
96         |           |
96         |           |
           | M10       |
           | M11       |
           |           |S1
12         |           |

我想知道是否可以这样做,以及如何做到这一点。非常感谢

1 个答案:

答案 0 :(得分:4)

可以使用一些CASE语句来管理。我们的想法是检查ver_klass的第一个字符是M还是S,并对每个字符采取不同的操作。因此,在第一种情况下,如果它既不是M,那么S值将变为ver_rayon。第二个和第三个案例分别查找MS并存储到这些列。由于该行只匹配三种情况中的一种,另外两种是空的。

SELECT
 ...
 ...
 CASE WHEN LEFT(ver_klass, 1) <> 'S' AND LEFT(ver_klass, 1) <> 'M' THEN ver_klass ELSE NULL END AS ver_rayon,
 CASE WHEN LEFT(ver_klass, 1) = 'M' THEN ver_klass ELSE NULL END AS ver_metier,
 CASE WHEN LEFT(ver_klass, 1) = 'S' THEN ver_klass ELSE NULL END AS ver_secteur,