標量值函式的用法

2021-05-26 01:01:14 字數 1580 閱讀 4759

昨天做乙個前台顯示,就是資料庫有4個字段都是int型,需要前台把它們合成乙個字段輸出。本來想著在資料庫在加一列,後來有人提議用標量值函式,發現這樣挺好的。拿來分享一下。

首先新建查詢複製下面**

code:

set ansi_nulls on

go   

set quoted_identifier on

go   

create

function [dbo].[formatlocationname](@rack int,@floor int,@position int,@bit

int)   

returns

varchar(100)   

asbegin

declare @strrack varchar(100),@strfloor varchar(100),@strposition varchar(100),@strbit varchar(100)   

declare @strretrun varchar(100)   

if(@rack < 10)   

begin

--if(@rack < 10)

set @strrack = '0' + convert(varchar(2),@rack)   

--else

-- set @strrack = convert(varchar(2),@rack)

endelse

set @strrack = convert(varchar(50),@rack)   

set @strfloor = convert(varchar(2),@floor)   

if(@position < 10)   

begin

--if(@position < 10)

--set @strposition = '00' + convert(varchar(2),@position)

--else if(@position < 100)

set @strposition = '0' + convert(varchar(2),@position)   

--else

--set @strposition = convert(varchar(2),@position)

endelse

set @strposition = convert(varchar(50),@position)   

set @strbit=convert(varchar(2),@bit)   

set @strretrun = @strrack + '-' + @strfloor + '-' + @strposition+'-'+@strbit   

return @strretrun   

end

然後code:

select dbo.formatlocationname([row], [floor], [line], [bit]) as locationname,[row], [floor], [line], [bit]from [storeinfo]     

就可以實現不用建立新列就可以組裝原有資料庫資料了。

SQL 標量值函式的呼叫

呼叫 ms sql 標量值函式,應該在函式前面加上 dbo.否則會報 不是可以識別的 內建函式名稱 錯誤。例如 declare whichdb tinyint select whichdb dbo.user getwhichdb 1 看看是哪個資料庫的 另外,標量值函式就相當於乙個變數,而不是乙個表...

sql的標量值函式例子

1.分割字串,處理某個字元第幾次出現獲取後面的值use ef go object userdefinedfunction dbo f substr script date 10 27 2014 20 36 10 set ansi nulls on goset quoted identifier on...

SQL錶值函式和標量值函式的區別

原文 sql錶值函式和標量值函式的區別 寫sql儲存過程經常需要呼叫一些函式來使處理過程更加合理,也可以使函式復用性更強,不過在寫sql函式的時候可能會發現,有些函式是在錶值函式下寫的有些是在標量值下寫的,區別是錶值函式只能返回乙個表,標量值函式可以返回基型別。舉個例子,當使用者刪除乙個節點的時候,...