是否可以将强制转换函数应用于选择语句?如果是,如何?我有一个查询返回一个数字,我必须使用一个字符串从另一个表中获取其他信息。
问问题
120184 次
5 回答
30
你就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
于 2012-08-16T14:35:05.177 回答
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 和 CONVERT (Transact-SQL)
于 2012-08-16T14:38:23.233 回答
2
我将这个问题解释为在子查询上使用强制转换。是的,你可以这么做:
select cast((<subquery>) as <newtype>)
如果这样做,则需要确保返回一行和一个值。而且,由于它返回一个值,您可以将转换放在子查询中:
select (select cast(<val> as <newtype>) . . .)
于 2012-08-16T15:09:29.183 回答
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
如果你想做一个连接查询,答案已经在另一篇文章中了:)
于 2012-08-16T14:33:46.873 回答
0
当您使用案例时:
CASE
WHEN TB1.COD IS NULL THEN
TB1.COD || ' - ' || TB1.NAME
ELSE
TB1.COD || ' - ' || TB1.NAME || ' - ' || TB.NM_TABELAFRETE
END AS NR_FRETE,
于 2014-10-31T13:23:04.520 回答