我在一本书中读到了这行代码,但不能完全理解它的应用。我理解这是关于隐式转换的,但不完全理解一些代码的目的。
DECLARE @sql NVARCHAR(
SELECT ISNULL(''5'', 5),
ISNULL(5, ''5''),
COALESCE(''5'', 5),
COALESCE(5, ''5'') ;
' ;
EXEC sp_executesql @sql ;
SELECT column_ordinal,
is_nullable,
system_type_name
FROM master.sys.dm_exec_describe_first_result_set(@sql, NULL, 0) a ;发布于 2019-06-03 06:17:19
我将大胆地猜测,它的目的是演示两个类似的TSQL函数之间的差异的可执行代码。此示例应该会产生预期的结果:
SELECT column_ordinal, is_nullable, system_type_name FROM sys.dm_exec_describe_first_result_set
( N'SELECT ISNULL(''5'', 5), ISNULL(5, ''5''), COALESCE(''5'', 5), COALESCE(5, ''5'');', null, 0);here中提供了一个SQL Fiddle示例。
仔细阅读IsNull()和Coalesce()的文档,特别注意它们的返回类型,就会解释结果。Data Type Precedence也是说明性的。
https://stackoverflow.com/questions/56419088
复制相似问题