SQL將百分數替代為折扣函式,輸入字串輸出字串

2021-10-04 01:17:01 字數 2169 閱讀 2308

create

function

[dbo]

.[get_num_forward]

(@vstr

varchar

(500),

@posi

int)

returns

varchar

(500

)/***找出字串中 某個特定字元前 的數字(包括整數、小數)***/

asbegin

declare

@cvarchar(1

);declare

@new

varchar

(500);

declare

@iint

;set

@new=''

;set@i=

@posi-1

;while

@i<=

len(

@vstr

)begin

set@c

=substring(

@vstr,@i

,1)if isnumeric(@c)

=1and@c

<>

'-'and

@c<>

'+'and

@c<>

','begin

set@new+=

@cend

else

if@c

='.'

begin

set@new+=

@cset@i=

@i-1;

endelse

begin

return reverse(

@new

)end

set@i=@i

-1;end

return reverse(

@new

)end

create

function dbo.get_promotion_clear(

@promotion

varchar

(1000))

returns

varchar

(1000

)/***替代字串中百分數部分,替代為打折數***/

asbegin

declare

@rep

float

declare

@repchar

varchar

(500

)declare

@position

intdeclare

@value

varchar

(500

)select

@position

=charindex(

'%',

@promotion

)select

@rep

=dbo.get_num_forward(

@promotion

,@position

)set

@value=10

-@rep

*0.1

set@repchar

=@rep

set@promotion

=replace

(@promotion

,'減'

+@repchar

+'%'

,'打'

+@value

+'折'

)return

@promotion

end

例項

select dbo.get_promotion_clear(

'滿128元,可減12.5%&&購買1件可優惠換購熱銷商品&&京東秒殺:54.70')go

select dbo.get_promotion_clear(

'滿228元,可減23%&&購買1件可優惠換購熱銷商品&&京東秒殺:54.70')go

select dbo.get_promotion_clear(

'滿328元,可減40%&&購買1件可優惠換購熱銷商品&&京東秒殺:54.70'

php 百分數 php 百分數如何轉小數

php百分數轉小數的方法 首先建立乙個php示例檔案 然後定義乙個百分數 接著通過 float a 100 方法將百分數轉為小數 最後通過echo輸出轉換後的小數即可。php百分數轉小數,php 小數轉換百分數函式 阿星小棧 php百分號轉小數 a 20.544545 echo float a 10...

python百分數小數

百分比轉換位小數 coding utf 8 s 20 預設要轉換的百分比是字串 aa float s.strip 去掉s 字串中的 bb aa 100.0 執行環境是python2.7 其中python2.x 與 python 3x中的除法是有區別 print bb 輸出結果是 0.2 小數轉換位百...

C 基礎 百分數

double a 50 double b 100 沒有小數部分 label1.text a a b tostring 0 兩位小數 label2.text a a b tostring p tostring 0.00 tostring p3 可以設定精度 方法一 能得到你想要的小數點後位數 doub...