我们应该在以下情况下投放演员

时间:2018-08-07 13:58:31

标签: sql-server tsql sql-server-2012

在以下情况下,我们应该放在哪里?

bridgid是表中的bigint

CAST(ISNULL(br.bridgid, 0) as bigint)

ISNULL(br.bridgid, cast(0 as bigint))

2 个答案:

答案 0 :(得分:0)

CAST(ISNULL(br.bridgid, 0) as bigint)

是正确的,因为

ISNULL(br.bridgid, cast(0 as bigint))

将始终返回br.brigid的数据类型,即使第二个参数的优先级更高。谢谢@AlexK

答案 1 :(得分:0)

@ user3129097只使用:

ISNULL(br.bridgid, 0)

因为Bridgid已经是BIGINT,所以无需强制转换。

DECLARE @Tbl TABLE (bridgid int)
INSERT INTO @Tbl
SELECT 1 union all
SELECT null 

SELECT ISNULL(br.bridgid, 0)
FROM
    @Tbl br