gpt4 book ai didi

sql - 将 sql 列从 varchar 转换为 bit 并保留数据

转载 作者:搜寻专家 更新时间:2023-10-30 23:00:03 25 4
gpt4 key购买 nike

我在 Sql Server 中有一个旧表,它有一个 varchar(5)可以是 true 的列或 false .

我想运行一个脚本,基本上将列类型更改为位,然后遍历数据并更改 true值为 1和其他一切0在那一栏中。

如果重要的话, table 很小。谁能帮我一下?

最佳答案

我会分三步进行转换,如下所示:

  1. 添加位列
  2. 使用单个 UPDATE
  3. 复制数据
  4. 删除 varchar(5)

这是实现这种方法的示例脚本:

create table test(flag varchar(5));
insert into test(flag) values ('true'), ('false'), (null);
-- #1: Add a bit column
alter table test add fbit bit;
-- #2: Copy data using a single `UPDATE`
UPDATE test
SET fbit = CASE
WHEN flag = 'true' THEN 1
WHEN flag = 'false' THEN 0
ELSE NULL
END
-- #3: Drop the varchar(5) column
ALTER TABLE test DROP COLUMN flag

Demo.请注意,SQLFiddle 为位列打印 truefalse,但实际数据是位,而不是 'true'/' false' 字符串。

关于sql - 将 sql 列从 varchar 转换为 bit 并保留数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34838914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com