将空值列设置为0

时间:2019-04-04 14:03:15

标签: sql sql-server tsql

我正在从实际表中创建一个临时表。现在在实际表中的Rewrite_Count列显示为空。我需要将这些null替换为0。有人可以帮助我获取正确的代码。

SELECT *
INTO policy.Fact_Monthly_Policy_Snap_20190403
FROM Policy.Fact_Monthly_Policy_Snap;

5 个答案:

答案 0 :(得分:2)

您基本上可以更新列的值:

def set_db():
    db = pymysql.connect(host='localhost',
                         user="root",
                         passwd="root",
                         db="DATABASE")
    return db


def execute_sql(cnx, sql_clause, fetch_all):

    if sql_clause and sql_clause is not None:
        try:
            cnx.execute(sql_clause)
        except Exception as e:
            print("Error in sql: " + sql_clause + str(e))
            return 0
            pass

        if fetch_all:
            result = cnx.fetchall()
        else:
            result = cnx.fetchone()

        return result
    else:
        print("Empty sql.")
        return 0

db = set_db()
cnx = db.cursor()
sql = "SELECT * FROM TABLE"
result = execute_sql(cnx, sql, 1)
cnx.close() #close the cursor
#db.close #do not close the db connection

以上解决方案假定Rewrite_Count列为整数类型。

答案 1 :(得分:1)

尝试一下

update policy.Fact_Monthly_Policy_Snap_20190403
set Rewrite_Count  = IsNull(Rewrite_Count,0)
where Rewrite_Count is null

答案 2 :(得分:1)

使用ISNULL()

SELECT ISNULL(Rewrite_Count, 0) Rewrite_Count, --Other columns
INTO policy.Fact_Monthly_Policy_Snap_20190403
FROM Policy.Fact_Monthly_Policy_Snap;

答案 3 :(得分:0)

Default的{​​{1}}字段中添加Rewrite_Count。这样,如果有人将记录添加到表中,但未为Monthly_Policy_Snap指定值,则系统会将其设置为0。

您可以使用Monthly_Policy_Snap

进行添加

详细了解Alter Table ... Alter Column约束here

答案 4 :(得分:0)

注意Select into语句仅复制某些属性,例如列名,数据类型,但最重要的是它不包括约束,触发器等。

您可以使用coalcece和isnull替换为0。coalcece是标准的,isnull是特定于tsql的。如果源列不为null,则结点和isull都将结果列的属性设置为not null。但是,如果源列为null,则null会将结果列设置为非null。