是否可以将强制转换函数应用于select语句?如果有,怎么样?我有一个查询返回一个数字,我必须使用一个字符串从另一个表中获取其他信息。
答案 0 :(得分:26)
你只是CAST()
这样
SELECT cast(yourNumber as varchar(10))
FROM yourTable
然后,如果你想JOIN
基于它,你可以使用:
SELECT *
FROM yourTable t1
INNER JOIN yourOtherTable t2
on cast(t1.yourNumber as varchar(10)) = t2.yourString
答案 1 :(得分:4)
是的,你可以做到。
CAST
的语法:
CAST ( expression AS data_type [ ( length ) ] )
例如:
CAST(MyColumn AS Varchar(10))
CAST
声明中的 SELECT
:
Select CAST(MyColumn AS Varchar(10)) AS MyColumn
FROM MyTable
有关详情,请参阅CAST and CONVERT (Transact-SQL)
答案 2 :(得分:1)
我将问题解释为在子查询上使用强制转换。是的,你可以这样做:
select cast((<subquery>) as <newtype>)
如果你这样做,那么你需要确保返回一行和一个值。并且,由于它返回一个值,您可以将转换放在子查询中:
select (select cast(<val> as <newtype>) . . .)
答案 3 :(得分:0)
如果你正在使用SQL(你没说):
select cast(column as varchar(200)) from table
您可以在任何语句中使用它,例如:
select value where othervalue in( select cast(column as varchar(200)) from table)
from othertable
如果你想进行连接查询,答案已经在另一篇文章中了:)
答案 4 :(得分:0)
当你使用案例时:
CASE
WHEN TB1.COD IS NULL THEN
TB1.COD || ' - ' || TB1.NAME
ELSE
TB1.COD || ' - ' || TB1.NAME || ' - ' || TB.NM_TABELAFRETE
END AS NR_FRETE,