在以下情况下,我们应该放在哪里?
bridgid
是表中的bigint
。
CAST(ISNULL(br.bridgid, 0) as bigint)
或
ISNULL(br.bridgid, cast(0 as bigint))
答案 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