SQL中conver函数是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中conver函数是啥意思相关的知识,希望对你有一定的参考价值。

数据转换呗 如 select conver(int,'1') 就是把varchar类型转换为int 参考技术A 你想问的是不是convert函数啊

CONVERT(data_type,e­xpression[,style])
说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.

例子:
Select CONVERT(varchar(30),getdate(),101) now
结果为:
now
---------------------------------------
|09/15/2001本回答被提问者和网友采纳
参考技术B convert是强制类型转换函数

SQL 函数中的两个 return 语句是啥意思?

【中文标题】SQL 函数中的两个 return 语句是啥意思?【英文标题】:What does two return statements inside an SQL function mean?SQL 函数中的两个 return 语句是什么意思? 【发布时间】:2016-08-29 15:12:33 【问题描述】:

从这个返回小数的标量函数实际返回的代码路径:

DECLARE @SafetyStockUnitsCalcNew decimal(14,2)  
   RETURN( SELECT STDEV(
     .
     .
     --  Calculating code here. 

     )

-- Return the result of the function
    RETURN @SafetyStockUnitsCalcNew 
END

那么返回什么?

是第一个 return scaler 语句还是第二个 scaler 语句?


此外,一旦声明了@SafetyStockUnitsCalcNew,在返回之前它永远不会被使用。设置在哪里?

STDEV 中的代码根本没有引用@SafetyStockUnitsCalcNew

【问题讨论】:

第二个 return 永远不应该执行,因为第一个 return 总是会触发。 您确定它按原样正常工作吗? 是的,它正在工作它返回一个值。 我会说第一个 return 被执行并返回 select 产生的任何东西,而第二个 return 永远不会到达。函数应该只允许一个 return 语句。 几乎可以肯定是有人重写了proc。可能是 [DECLARE @] --> [SELECT @ = ...] --> [RETURN @]。事实上,如果你可以将它重构为一个非过程的表值函数,它的返回速度可能会快 10 倍 (***.com/questions/36576958/…)。 【参考方案1】:

一个函数可以有任意多的RETURN 语句。

例如下面是三个。

当控制流遇到return 语句时,函数的执行将停止并返回值。

CREATE FUNCTION dbo.Foo(@x int)
RETURNS INT
AS
BEGIN 
IF @x = 1
   RETURN 10;
ELSE
   RETURN 18;

RETURN 1/0;
END

SQL Server 不会执行与 C# 中相同级别的分析来检测所有代码路径是否返回值并警告您无法访问的代码。它只是坚持最后一条语句必须是return

在上面的例子中,第三个RETURN 语句永远无法到达,但如果没有它,您会看到错误“函数中包含的最后一个语句必须是返回语句。”。

在您的示例中,永远无法到达第二个 RETURN 语句,并且“最后一条语句”规则也不需要它,因此它是无用的。也许最初SELECT 将结果分配给变量,然后编码它的人意识到他们可以直接返回SELECT 结果。

【讨论】:

【参考方案2】:

我会继续测试服务器,创建函数并注释掉第二个 RETURN,看看会发生什么。我 99% 确定它永远不会执行。

【讨论】:

我认为这应该是评论而不是答案 你是对的,它不会执行。嗯,我想知道将第二个 return 语句放在那里的目的是什么?一定是bug

以上是关于SQL中conver函数是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

sql数据库中的datediff函数是啥意思

SQL server PARTITION BY 是啥意思

sql中charindex函数 的第三个参数是啥意思

sql查询里面xtype='u'是啥意思?

decode(A.type, 0, 1, 0) 这个sql函数,是啥意思? 谢谢解答

数据库sql语句length(NVL(RZSJ,''))是啥意思?