當前位置:首頁 » 編程語言 » sql金額大寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql金額大寫

發布時間: 2023-08-12 13:14:53

sql語句大小寫有關系嗎

SQL大小寫並不敏感,但是如果是引起來的字元,則是區分大小寫的,

示例如下,

1、創建測試表,create table test_uporlow(id number, value varchar2(20));

⑵ SQL人民幣的大小寫轉換

建立一個函數,函數如下
CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,5))
RETURNS varchar(100) WITH ENCRYPTION
AS
BEGIN
DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int
SET @n_data=RIGHT(SPACE(14)+CAST(CAST(ABS(@num*100) AS bigint) AS varchar(20)),14)
SET @c_data=''
SET @i=1
WHILE @i<=14
BEGIN
SET @n_str=SUBSTRING(@n_data,@i,1)
IF @n_str<>' '
BEGIN
IF not ((SUBSTRING(@n_data,@i,2)='00') or
((@n_str='0') and ((@i=4) or (@i=8) or (@i=12) or (@i=14))))
SET @c_data=@c_data+SUBSTRING('零壹貳叄肆伍陸柒捌玖',CAST(@n_str AS int)+1,1)
IF not ((@n_str='0') and (@i<>4) and (@i<>8) and (@i<>12))
SET @c_data=@c_data+SUBSTRING('仟佰拾億仟佰拾萬仟佰拾圓角分',@i,1)
IF SUBSTRING(@c_data,LEN(@c_data)-1,2)='億萬'
SET @c_data=SUBSTRING(@c_data,1,LEN(@c_data)-1)
END
SET @i=@i+1
END
IF @num<0
SET @c_data='(負數)'+@c_data
IF @num=0
SET @c_data='零圓'
IF @n_str='0'
SET @c_data=@c_data+'整'
RETURN (@c_data)
END

調用
select [dbo].[f_num_chn](120)

⑶ SQL Server中有沒有直接將小寫金額轉換成大寫的函數啊,像日期函數一樣,直接可以使用的

create function [dbo].[fn_getformatmoney] (@money numeric(14,2))
returns nvarchar(32) as
begin
declare @money_num nvarchar(20) --存儲金額的字元形式 51itr.net
, @money_chn nvarchar(32) --存儲金額的中文大寫形式
, @n_chn nvarchar(1), @i int --臨時變數 51itr.com

select @money_chn=case when @money>=0 then '' else '(負)' end
, @money=abs(@money)
, @money_num=stuff(str(@money, 15, 2), 13, 1, '') --加前置空格補齊到位(去掉小數點) 51itr
, @i=patindex('%[1-9]%', @money_num) --找到金額最高位

while @i>=1 and @i<=14
begin

set @n_chn=substring(@money_num, @i, 1)
if @n_chn<>'0' or (substring(@money_num,@i+1,1)<>'0' and @i not in(4, 8, 12, 14)) --轉換阿拉伯數字為中文大寫形式 51itr.net
set @money_chn=@money_chn+substring('零壹貳叄肆伍陸柒捌玖', @n_chn+1, 1)
if @n_chn<>'0' or @i in(4, 8, 12) --添加中文單位

set @money_chn=@money_chn+substring('仟佰拾億仟佰拾萬仟佰拾圓角分',@i,1)

set @i=@i+1
end

set @money_chn=replace(@money_chn, '億萬', '億') --當金額為x億零萬時去掉萬
if @money=0 set @money_chn='零圓整' --當金額為零時返回'零圓整'

if @n_chn='0' set @money_chn=@money_chn+'整' --當金額末尾為零分時以'整'結尾

return @money_chn --返回大寫金額

end
go
--測試示例
---select dbo.fn_getformatmoney(88888)

⑷ 用SQL編一個把數字的錢(如100.50)轉化成大寫的錢(如壹佰圓零五角整)的程序

創建一個存儲過程就行了

CREATE PROCEDURE dbo.L2U
(
@n_LowerMoney numeric(15,2),
@v_TransType int,
@RET VARCHAR(200) output
)
AS

Declare @v_LowerStr VARCHAR(200) -- 小寫金額
Declare @v_UpperPart VARCHAR(200)
Declare @v_UpperStr VARCHAR(200) -- 大寫金額
Declare @i_I int

set nocount on

select @v_LowerStr = LTRIM(RTRIM(STR(@n_LowerMoney,20,2))) --四捨五入為指定的精度並刪除數據左右空格

select @i_I = 1
select @v_UpperStr = ''

while ( @i_I <= len(@v_LowerStr))
begin
select @v_UpperPart = case substring(@v_LowerStr,len(@v_LowerStr) - @i_I + 1,1)
WHEN '.' THEN '元'
WHEN '0' THEN '零'
WHEN '1' THEN '壹'
WHEN '2' THEN '貳'
WHEN '3' THEN '叄'
WHEN '4' THEN '肆'
WHEN '5' THEN '伍'
WHEN '6' THEN '陸'
WHEN '7' THEN '柒'
WHEN '8' THEN '捌'
WHEN '9' THEN '玖'
END
+
case @i_I
WHEN 1 THEN '分'
WHEN 2 THEN '角'
WHEN 3 THEN ''
WHEN 4 THEN ''
WHEN 5 THEN '拾'
WHEN 6 THEN '佰'
WHEN 7 THEN '仟'
WHEN 8 THEN '萬'
WHEN 9 THEN '拾'
WHEN 10 THEN '佰'
WHEN 11 THEN '仟'
WHEN 12 THEN '億'
WHEN 13 THEN '拾'
WHEN 14 THEN '佰'
WHEN 15 THEN '仟'
WHEN 16 THEN '萬'
ELSE ''
END
select @v_UpperStr = @v_UpperPart + @v_UpperStr
select @i_I = @i_I + 1
end

--------print '//v_UpperStr ='+@v_UpperStr +'//'

if ( @v_TransType=0 )
begin
select @v_UpperStr = REPLACE(@v_UpperStr,'零拾','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零佰','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零仟','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零零零','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零零','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零角零分','整')
select @v_UpperStr = REPLACE(@v_UpperStr,'零分','整')
select @v_UpperStr = REPLACE(@v_UpperStr,'零角','零')
select @v_UpperStr = REPLACE(@v_UpperStr,'零億零萬零元','億元')
select @v_UpperStr = REPLACE(@v_UpperStr,'億零萬零元','億元')
select @v_UpperStr = REPLACE(@v_UpperStr,'零億零萬','億')
select @v_UpperStr = REPLACE(@v_UpperStr,'零萬零元','萬元')
select @v_UpperStr = REPLACE(@v_UpperStr,'萬零元','萬元')
select @v_UpperStr = REPLACE(@v_UpperStr,'零億','億')
select @v_UpperStr = REPLACE(@v_UpperStr,'零萬','萬')
select @v_UpperStr = REPLACE(@v_UpperStr,'零元','元')
select @v_UpperStr = REPLACE(@v_UpperStr,'零零','零')
end

-- 對壹元以下的金額的處理
if ( substring(@v_UpperStr,1,1)='元' )
begin
select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))
end

if (substring(@v_UpperStr,1,1)= '零')
begin
select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))
end

if (substring(@v_UpperStr,1,1)='角')
begin
select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))
end

if ( substring(@v_UpperStr,1,1)='分')
begin
select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1))
end
if (substring(@v_UpperStr,1,1)='整')
begin
select @v_UpperStr = '零元整'
end
select @ret=@v_UpperStr
GO

使用時調用這個存儲過程

declare @ret varchar(200)
exec L2U 567983.897,1,@ret output
select @ret

⑸ SQL語句必須用大寫,是不是規范為什

SQL推薦使用大寫,但是使用小寫也也可以!沒有嚴格規定。

⑹ SQL server 把小寫字母改為大寫字母的語句

一、小寫改大寫SQL語句:

(1)將小寫轉換為大寫:UPPER(cust_id)

註:詳細使用情況可以看下圖

二、拓展資料

SQL Server 是一個關系資料庫管理系統。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發的,於icrosoft SQL Server1988 年推出了第一個OS/2 版本。在Windows NT 推出後,Microsoft與Sybase 在SQL Server 的開發上就分道揚鑣了,Microsoft 將SQL Server 移植到Windows NT系統上,專注於開發推廣SQL Server 的Windows NT 版本。Sybase 則較專注於SQL Server在UNIX 操作系統上的應用。

SQL Server 2000 是Microsoft 公司推出的SQL Server 資料庫管理系統,該版本繼承了SQL Server 7.0 版本的優點,同時又比它增加了許多更先進的功能。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的伺服器等多種平台使用。

⑺ mysql里,如何用SQL語句把數據中的小寫字母改為大寫字母

UCASE() 函數

UCASE() 函數把欄位的值轉換為大寫。

具體語法參考:

-from shulanxt

這邊已經詳細的給出了這個函數的介紹了哈~希望能對樓主有所幫助~望採納~