gpt4 book ai didi

sql - 如何在 SELECT INTO 之后保留数据类型?

转载 作者:行者123 更新时间:2023-12-02 07:03:34 25 4
gpt4 key购买 nike

我有一个包含一些日期/时间字段的表 T1。我已将此表上的几个查询与 UNION 查询组合在一起,并使用联合上的 SELECT INTO 创建了一个新表 T2,如下所示:

SELECT * INTO T2
FROM (select * from query1_T1
union
select * from query2_T1)

问题是 query1_T1 将一些日期字段替换为空白字符串常量,这导致 T2 具有文本字段而不是日期/时间字段。举例说明:

query1_T1:
select myUDF(someTextField),"" as newDateField from T1

query2_T1:
select anotherUDF(someTextField),oldDateField from T1

其中 oldDateField 是日期/时间。

有没有一种方法可以构建 SELECT INTO 或更改 query1_T1,这样我仍然可以从查询中获得相同的结果,但 newDateField 将结束作为日期/时间?

最佳答案

您始终可以单独创建表而不向其中添加数据。首先,使用适当的数据类型定义所有字段。然后使用 INSERT INTO (columns) SELECT * FROM 来填充它。

更新:

或者您可以采用混合方法。首先执行SELECT INTO完全没有行:

SELECT * INTO T2
FROM query2_T1
WHERE 1=0

这将创建您的大部分结构。然后您可以手动调整任何未正确通过的数据类型。

适当调整结构后,您可以安全地执行此操作:

INSERT INTO T2 
SELECT * FROM query1_T1
UNION
SELECT * FROM query2_T1

关于sql - 如何在 SELECT INTO 之后保留数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16343451/

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