2

尊敬的 Stackoverflow 用户您好。

在 sql server 上使用 sql

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

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

下图是我目前的视图。

在此处输入图像描述

这就是我想表达的观点:

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

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

4

1 回答 1

4

这可以通过一些CASE语句来管理。这个想法是检查第一个字符是否ver_klassMS并对每个字符采取不同的操作。所以在第一种情况下,如果它既不是 M,S 则值变为ver_rayon。第二种和第三种情况分别查找MS存储到这些列。由于该行仅匹配三种情况中的一种,因此其他两种情况为 NULL。

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,
于 2012-04-19T14:07:50.513 回答