Hallo亲爱的Stackoverflow用户。
在sql server上使用sql
我搜索了论坛和互联网,但没有找到有关我想要实现的信息。主要是因为我不知道正确的术语。
我创建了一个新视图,我想将列(ver_klass)中的不同数据过滤到新创建的列。
下图是我的观点目前的样子。
这就是我想表达观点的方式:
ver_rayon |ver_metier |ver_secteur
96 | |
96 | |
| M10 |
| M11 |
| |S1
12 | |
我想知道是否可以这样做,以及如何做到这一点。非常感谢
答案 0 :(得分:4)
可以使用一些CASE
语句来管理。我们的想法是检查ver_klass
的第一个字符是M
还是S
,并对每个字符采取不同的操作。因此,在第一种情况下,如果它既不是M,那么S值将变为ver_rayon
。第二个和第三个案例分别查找M
和S
并存储到这些列。由于该行只匹配三种情况中的一种,另外两种是空的。
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,