使用Select语句中的函数进行转换

时间:2013-04-05 15:59:32

标签: sql sql-server ssms

所以让我说我有两个表有五列,其中四列完美匹配,但最后一列有不同的数据类型,一个是char,另一个是uniqueidentifier。但我有这个功能,让我们称它为dbo.x,接受uniqueidentifier并在数据库的其他地方搜索相应的名称。

所以我需要做的是开发这个脚本,将数据从table1复制到table2,并使用该函数转换最后一列。

在做了一些研究之后我尝试了这个(显然没有用):

INSERT INTO table1 (col1, col2, col3, col4, col5)
SELECT col1, col2, col3, col4, col5 AS dbo.x(table2.col5)
FROM table2

有人可以给我一些建议吗?

2 个答案:

答案 0 :(得分:3)

您已切换表达式和别名 - 语法应如下所示:

INSERT INTO table1 (col1, col2, col3, col4, col5)
SELECT col1, col2, col3, col4, dbo.x(table2.col5) AS col5
FROM table2

通常,当您在select语句中使用表达式并希望为结果列指定名称时,首先编写表达式,然后编写其别名,例如

SELECT <expression> AS <column-name>
FROM ...

答案 1 :(得分:3)

这个怎么样

INSERT INTO table1 (col1, col2, col3, col4, col5)
SELECT col1, col2, col3, col4, dbo.x(col5)
FROM table2