【发布时间】:2020-03-04 12:32:10
【问题描述】:
我的数据以分号分隔的值存在于一个名为“主列”的列中,如下所示,最多有 12 个唯一值,我想将这些值拆分为 12 个单独的列,如 bv、fv、iv 等这些单独的列应填充为 1(如果它与主列值匹配),否则为 0(如果与主列值不匹配)。
主列数据
例如,
如果主列有数据
bv;fv;iv;kv;lr;lv;lz;mv;sh;sv;sz;wv;
那么所有 12 个单独的列都应该填充 1。
如果主列有数据 bv;fv;iv;那么只有三个单独的列(bv、fv、iv)的布尔值应该是 1,其他列的值应该是 0。
等等。
请你帮我写一个快速的 SQL 语句来实现上述要求?
【问题讨论】:
-
请标上您真正使用的数据库。
-
由于没有其他人提到它,您应该考虑在这里修复数据模型。存储带分隔符的值违反了 1NF,而且使用起来会更加麻烦和缓慢。
标签: sql sql-server sql-server-2016