首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要一些帮助来理解这行T-SQL代码

我需要一些帮助来理解这行T-SQL代码
EN

Stack Overflow用户
提问于 2019-06-03 05:32:07
回答 1查看 26关注 0票数 0

我在一本书中读到了这行代码,但不能完全理解它的应用。我理解这是关于隐式转换的,但不完全理解一些代码的目的。

代码语言:javascript
复制
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 ;
EN

回答 1

Stack Overflow用户

发布于 2019-06-03 06:17:19

我将大胆地猜测,它的目的是演示两个类似的TSQL函数之间的差异的可执行代码。此示例应该会产生预期的结果:

代码语言:javascript
复制
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也是说明性的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56419088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档