當前位置:首頁 » 編程語言 » sql後面數值怎麼算的
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql後面數值怎麼算的

發布時間: 2022-05-31 22:12:40

資料庫sql語句怎麼查詢 數值 的後面有幾位小數點

什麼資料庫啊

以sqlserver為例

selectlen(cast(12.134asvarchar))-charindex('.',cast(12.134asvarchar))

② sql 怎麼把資料庫里的計算公式 進行計算

方法和詳細的操作步驟如下:

1、第一步,在桌面上,雙擊「
Management Studio」圖標,見下圖,轉到下面的步驟。

③ 怎麼計算sql中數據類型的范圍

SQL數據類型詳解

bit 整型
其值只能是0、1或空值。
這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或False 、On
或Off.

int 整型 4個位元組
從- 2^31(-2147483648)到2^31 (2147483
647)之間的整數。
存儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。

smallint 整型 2個位元組
smallint 數據類型可以存儲從- 2^15(-32768)到2^15(32767)之間的整數。

tinyint 整型 1個位元組
tinyint 數據類型能存儲從0到255 之間的整數。

numeric 、 decimal 精確數值型

從-1038-1到1038-1的固定精度和范圍的數值型數據。
使用這種數據類型時,必須指定范圍和精度。
范圍是小數點左右所能存儲的數字的總位數,精度是小數點右邊存儲的數字的位數。

money 貨幣型
這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一。

smallmoney 貨幣型
這種數據類型能存儲從-214748.3648 到214748.3647
之間的數據,精確到貨幣單位的萬分之一。

float 浮點數值型
從-1.79E+308到1.79E+308 之間的任意數。

real 實型
在-3.40E+38到3.40E+38之間的浮點數。

datetime 日期時間型

從1753年1月1日到9999年12月31日間所有的日期和時間數據,精確到三百分之一秒或3.33毫秒。

Smalldatetime 日期時間型
從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鍾。

cursor 特殊數據型
它包含一個對游標的引用。這種數據類型用在存儲過程中,而且創建表時不能用。

timestamp 特殊數據型

用來創建一個資料庫范圍內的唯一數碼。
一個表中只能有一個timestamp列。每次插入或修改一行時,timestamp列的值都會改變。

Uniqueidentifier 特殊數據型
全局唯一標識符,即GUID。可以使用NEWID
函數或轉換一個字元串為唯一標識符來初始化具有唯一標識符的列 .

char 字元型

存儲指定長度的定長非統一編碼型的數據。當定義一列為此類型時,你必須指定列長。
當你總能知道要存儲的數據的長度時,此數據類型很有用。
此數據類型的列寬最大為8000
個字元.

varchar 字元型
用來存儲非統一編碼型字元數據。與char
型不一樣,此數據類型為變長。
當定義一列為該數據類型時,你要指定該列的最大長度。

它與char數據類型最大的區別是,存儲的長度不是列長,而是數據的長度.

text 字元型

用來存儲大量的非統一編碼型字元數據。
這種數據類型最多可以有2^31-1或20億個雙位元組字元.

nchar 統一編碼字元型

用來存儲定長統一編碼字元型數據。統一編碼用雙位元組結構來存儲每個字元,而不是用單位元組(普通文本中的情況)。它允許大量的擴展字元。此數據類型能存儲4000種字元,使用的位元組空間上增加了一倍.

nvarchar 統一編碼字元型
nvarchar
數據類型用作變長的統一編碼字元型數據。此數據類型能存儲4000種字元,使用的位元組空間增加了一倍.

ntext 統一編碼字元型
ntext 數據類型用來存儲大量的統一編碼字元型數據。
這種數據類型能存儲2^30
-1或將近10億個字元,且使用的位元組空間增加了一倍

binary 二進制數據類型
binary數據類型用來存儲可達8000
位元組長的定長的二進制數據。當輸入表的內容接近相同的長度時,你應該使用這種數據類型.

varbinary 二進制數據類型
varbinary 數據類型用來存儲可達8000
位元組長的變長的二進制數據。當輸入表的內容大小可變時,你應該使用這種數據類型

image 二進制數據類型
image 數據類型用來存儲變長的二進制數據,最大可達2^31-1或大約20億位元組

---------------------------------------------------
(1)二進制數據類型

二進制數據包括 Binary、Varbinary 和 Image
Binary
數據類型既可以是固定長度的(Binary),也可以是變長度的。
Binary[(n)] 是 n 位固定的二進制數據。其中,n 的取值范圍是從 1 到
8000。其存儲窨的大小是 n + 4 個位元組。
Varbinary[(n)] 是 n 位變長度的二進制數據。其中,n 的取值范圍是從 1 到
8000。其存儲窨的大小是 n + 4個位元組,不是n 個位元組。
在 Image 數據類型中存儲的數據是以位字元串存儲的,不是由 SQL Server
解釋的,必須由應用程序來解釋。例如,應用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數據存儲在 Image 數據類型中。

(2)字元數據類型

字元數據的類型包括 Char,Varchar 和 Text
字元數據是由任何字母、符號和數字任意組合而成的數據。
Varchar
是變長字元數據,其長度不超過 8KB。Char 是定長字元數據,其長度最多為 8KB。超過 8KB 的ASCII 數據可以使用Text數據類型存儲。例如,因為
Html 文檔全部都是 ASCII 字元,並且在一般情況下長度超過 8KB,所以這些文檔可以 Text 數據類型存儲在SQL Server 中。

(3)Unicode 數據類型

Unicode 數據類型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,傳統的非
Unicode 數據類型允許使用由特定字元集定義的字元。在 SQL Server安裝過程中,允許選擇一種字元集。使用 Unicode
數據類型,列中可以存儲任何由Unicode 標準定義的字元。在 Unicode
標准中,包括了以各種字元集定義的全部字元。使用Unicode數據類型,所戰勝的窨是使用非 Unicode 數據類型所佔用的窨大小的兩倍。
在 SQL
Server 中,Unicode 數據以 Nchar、Nvarchar 和 Ntext
數據類型存儲。使用這種字元類型存儲的列可以存儲多個字元集中的字元。當列的長度變化時,應該使用Nvarchar 字元類型,這時最多可以存儲 4000
個字元。當列的長度固定不變時,應該使用 Nchar 字元類型,同樣,這時最多可以存儲4000 個字元。當使用 Ntext 數據類型時,該列可以存儲多於 4000
個字元。

(4)日期和時間數據類型

日期和時間數據類型包括 Datetime 和
Smalldatetime兩種類型
日期和時間數據類型由有效的日期和時間組成。例如,有效的日期和時間數據包括「4/01/98
12:15:00:00:00 PM」和「1:28:29:15:01AM
8/17/98」。前一個數據類型是日期在前,時間在後一個數據類型是霎時間在前,日期在後。在 Microsoft SQL
Server中,日期和時間數據類型包括Datetime 和 Smalldatetime 兩種類型時,所存儲的日期范圍是從 1753 年 1 月 1
日開始,到9999 年12 月 31 日結束(每一個值要求 8 個存儲位元組)。使用 Smalldatetime 數據類型時,所存儲的日期范圍是 1900年 1
月 1日 開始,到 2079 年 12 月 31 日結束(每一個值要求 4
個存儲位元組)。
日期的格式可以設定。設置日期格式的命令如下:
Set DateFormat {format | @format
_var|
其中,format | @format_var 是日期的順序。有效的參數包括 MDY、DMY、YMD、YDM、MYD 和
DYM。在默認情況下,日期格式為MDY。
例如,當執行 Set DateFormat YMD 之後,日期的格式為年 月 日 形式;當執行 Set
DateFormat DMY 之後,日期的格式為日 月有年 形式

(5)數字數據類型

數字數據只包含數字。數字數據類型包括正數和負數、小數(浮點數)和整數
整數由正整數和負整數組成,例如 39、25、0-2 和 33967。在
Micrsoft SQL Server 中,整數存儲的數據類型是 Int,Smallint和 Tinyint。

Int 數據類型存儲數據的范圍大於 Smallint 數據類型存儲數據的范圍,而 Smallint 據類型存儲數據的范圍大於Tinyint
數據類型存儲數據的范圍。

使用 Int 數據狗昔存儲數據的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個位元組存儲空間)。

使用 Smallint 數據類型時,存儲數據的范圍從 -32 768 到 32 767(每一個值要求2個位元組存儲空間)。

使用Tinyint 數據類型時,存儲數據的范圍是從0 到255(每一個值要求1個位元組存儲空間)。
精確小婁數據在 SQL Server
中的數據類型是 Decimal 和 Numeric。這種數據所佔的存儲空間根據該數據的位數後的位數來確定。
在SQL Server
中,近似小數數據的數據類型是 Float 和
Real。例如,三分之一這個分數記作。3333333,當使用近似數據類型時能准確表示。因此,從系統中檢索到的數據可能與存儲在該列中數據不完全一樣。

(6)貨幣數據表示正的或者負的貨幣數量 。

在 Microsoft SQL Server 中,貨幣數據的數據類型是Money 和 Smallmoney
Money數據類型要求 8
個存儲位元組,Smallmoney 數據類型要求 4 個存儲位元組。

(7)特殊數據類型

特殊數據類型包括前面沒有提過的數據類型。特殊的數據類型有3種,即 Timestamp、Bit 和
Uniqueidentifier。
Timestamp 用於表示SQL Server 活動的先後順序,以二進投影的格式表示。Timestamp
數據與插入數據或者日期和時間沒有關系。
Bit 由 1 或者 0 組成。當表示真或者假、ON 或者 OFF 時,使用 Bit
數據類型。例如,詢問是否是每一次訪問的客戶機請求可以存儲在這種數據類型的列中。
Uniqueidentifier 由 16
位元組的十六進制數字組成,表示一個全局唯一的。當表的記錄行要求唯一時,GUID是非常有用。例如,在客戶標識號列使用這種數據類型可以區別不同的客戶。

2.用戶定義的數據類型

用戶定義的數據類型基於在 Microsoft SQL Server
中提供的數據類型。當幾個表中必須存儲同一種數據類型時,並且為保證這些列有相同的數據類型、長度和可空性時,可以使用用戶定義的數據類型。例如,可定義一種稱為
postal_code 的數據類型,它基於 Char
數據類型。
當創建用戶定義的數據類型時,必須提供三個數:數據類型的名稱、所基於的系統數據類型和數據類型的可空性。

(1)創建用戶定義的數據類型

創建用戶定義的數據類型可以使用 Transact-SQL 語句。系統存儲過程 sp_addtype
可以來創建用戶定義的數據類型。其語法形式如下:
sp_addtype
{type},[,system_data_bype][,'null_type']
其中,type
是用戶定義的數據類型的名稱。system_data_type 是系統提供的數據類型,例如 Decimal、Int、Char 等等。 null_type
表示該數據類型是如何處理空值的,必須使用單引號引起來,例如'NULL'、'NOT NULL'或者'NONULL'。
例子:
Use
cust
Exec sp_addtype ssn,'Varchar(11)',"Not Null'
創建一個用戶定義的數據類型
ssn,其基於的系統數據類型是變長為11 的字元,不允許空。
例子:
Use cust
Exec sp_addtype
birthday,datetime,'Null'
創建一個用戶定義的數據類型 birthday,其基於的系統數據類型是
DateTime,允許空。
例子:
Use master
Exec sp_addtype
telephone,'varchar(24),'Not Null'
Eexc sp_addtype
fax,'varchar(24)','Null'
創建兩個數據類型,即 telephone 和 fax

(2)刪除用戶定義的數據類型

當用戶定義的數據類型不需要時,可刪除。刪除用戶定義的數據類型的命令是 sp_droptype {'type'}。
例子:
Use
master
Exec sp_droptype
'ssn'
注意:當表中的列還正在使用用戶定義的數據類型時,或者在其上面還綁定有默認或者規則時,這種用戶定義的數據類型不能刪除。

SQL SERVER的欄位類型說明

以下為SQL SERVER7.0以上版本的欄位類型說明。SQL SERVER6.5的欄位類型說明請參考SQL SERVER提供的說明。

欄位類型 描述
bit 0或1的整型數字
int
從-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型數字
smallint
從-2^15(-32,768)到2^15(32,767)的整型數字
tinyint 從0到255的整型數字

decimal 從-10^38到10^38-1的定精度與有效位數的數字
numeric decimal的同義詞

money
從-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的貨幣數據,最小貨幣單位千分之十

smallmoney 從-214,748.3648到214,748.3647的貨幣數據,最小貨幣單位千分之十

float
從-1.79E+308到1.79E+308可變精度的數字
real 從-3.04E+38到3.04E+38可變精度的數字

datetime 從1753年1月1日到9999年12日31的日期和時間數據,最小時間單位為百分之三秒或3.33毫秒

smalldatetime 從1900年1月1日到2079年6月6日的日期和時間數據,最小時間單位為分鍾

timestamp 時間戳,一個資料庫寬度的唯一數字
uniqueidentifier 全球唯一標識符GUID

char 定長非Unicode的字元型數據,最大長度為8000
varchar 變長非Unicode的字元型數據,最大長度為8000

text 變長非Unicode的字元型數據,最大長度為2^31-1(2G)

nchar
定長Unicode的字元型數據,最大長度為8000
nvarchar 變長Unicode的字元型數據,最大長度為8000
ntext
變長Unicode的字元型數據,最大長度為2^31-1(2G)

binary 定長二進制數據,最大長度為8000

varbinary 變長二進制數據,最大長度為8000
image 變長二進制數據,最大長度為2^31-1(2G)

-------------------------------------
Bit
1位,值為0或1

Int
Integer
4位元組,值為-2^31~2^31-1
Smallint

2位元組,值為-2^15~2^15-1
Tinyint
1位元組,值為0~255
Decimal (p,s)

數字數據,固定精度為P,寬度為S
Numeric
Money

8位元組,存放貨幣類型,值為-2^63~2^63-1
Small money

4位元組,存放貨幣類型,值為-214748.3648~+214748.3647近似數值數據類型
Float (n)

N在1~24之間,4位元組,7位精度
N=1~7為real
N在25~53之間,8位元組,15位精度

=8~15為float
Datetime
8位元組,描述某天的日期和時刻,值的精確度為1/300秒

Smalldatetime
4位元組,描述某天的日期和時刻,精度為分鍾
Cursor
對游標的引用

Timestamp
8位元組,存放在資料庫內唯一的數據
Uniqueidentifier

16位元組,存放全局唯一標識(GUID)
Char (n)
非unicode字元串的固定長度,n=1~8000

Character (n)
Varchar (n)
可變長度,非unicode字元串n=1~8000

Char varying(n)
Text
伺服器代碼頁中可變長度非unicode數據。最大長度為2^31-1個字元

Nchar
固定長度unicode字元串n=1~4000
National character (n),

National char(n)
Nvarchar
固定長度unicode字元串n=1~4000
National
character varying(n)
Ntext
可變長度unicode數據,最大長度為2^30-1個字元

National text
Binary (n)
固定長度二進制數據,n在1~8000之間,存儲空間為n+4位元組

Varbinary (n)
可變長度二進制數據,n=1~8000
Binary varying (n)
Tmage

可變長度二進制數據,大小為0~2^31-1
注意:
1)
對於數值型數據類型,寬度(scale)是指存儲在小數點後的數字位數,而精度(precision)是指能存儲的包含小數點在內的所有數字位數。

2) money和small money的存儲寬度為4。
3) 時間戳列值在每一行更新時系統自動更新,時間戳列不能是關鍵字或關鍵字的一部分。

4)
唯一標識數據類型不能使用算術操作符(如+、-等),這種數據類型只能使用相等比較操作。Unicode是所有字元集的一致存儲數據的標准。它要使用兩倍於非Unicode數據存儲的存儲空間。

④ 用sql語句怎麼計算 百分比 的數值呢 求代碼!

--建立測試表testTable

createtabletestTable(idintidentity(1,1),typenvarchar(8))

go

--循環插入測試語句

declare@aint

set@a=0

while(@a<100)

begin

if@a<80

insertintotestTable(type)values('會員')

else

insertintotestTable(type)values('vip')

set@a=@a+1

end

go

--查看插入表中的所有數據

select*fromtestTable

--查看你要看的的數據

selectb.sumb%a.suma'會員占總人數的百分比(%)'

from(selectCOUNT(*)sumafromtestTable)a,

(selectCOUNT(*)sumbfromtestTablewheretype='會員')b

selectb.sumb%a.suma'vip占總人數的百分比(%)'

from(selectCOUNT(*)sumafromtestTable)a,

(selectCOUNT(*)sumbfromtestTablewheretype='vip')b

selectb.sumb%a.suma'會員占總人數的百分比(%)',c.sumc%a.suma'vip占總人數的百分比(%)'

from(selectCOUNT(*)sumafromtestTable)a,

(selectCOUNT(*)sumbfromtestTablewheretype='會員')b,

(selectCOUNT(*)sumcfromtestTablewheretype='vip')c

--查看完刪除測試表testTable

droptabletestTable

結果我已經看過了,如下圖:

⑤ sql語言order by後面跟一個計算出的結果

如果是在SQLSever中用那條語句查詢的話,把WHERE後面的那個等號要改成 *= (即左連接)試試。
比較困惑的一點是,COUNT()用來統計元組的個數,你Order by後面加個COUNT()統計出來的數值,那是什麼意思??Order by用對查詢結果按照一個或多個屬性列的升序(ASC)或降序(DESC)進行排列的啊。注意是對屬性列,而不是對一個具體的數值進行排序的啊。。。

⑥ SQL中的小數點後的輸入位數.

1、用函數 ROUND(數值,s) ,其中 s 表示 小數位數。

例:SELECT ROUND(4.994,2) 返回 4.990。

2、用函數 CAST(數值 as numeric(n,s)),其中n表示有效數字位數,s表示小數位數。

例:SELECT CAST(4.994 as numeric(10,2)) 返回 4.99。

3、用函數 CONVERT(numeric(n,s),數值),其中n表示有效數字位數,s表示小數位數。

例: SELECT CONVERT(numeric(10,2),4.985) 返回 4.99。

其運用的函數是函數 TRUNC。而trunc函數的功能和函數INT類似,是截取日期或數字,返回指定的值。函數trunc直接去除數字的小數部分,而函數INT則是向下舍入到最接近的整數。

(6)sql後面數值怎麼算的擴展閱讀

TRUNC(for number)語法格式:TRUNC(number,[decimals])

其中:

number 待做截取處理的數值。

decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分。

trunc函數 turnc(x,y)如果y是負數,則對x在小數點左邊的第|y|位處進行截斷。

例如:TRUNC(5.75, -1)=0;

看成 0005.75.000 從小數點左邊第一位往左邊截,是0。

下面是該函數的使用情況:

TRUNC(89.985,2)=89.98

TRUNC(89.985)=89

TRUNC(89.985,-1)=80

注意:第二個參數可以為負數,表示為小數點左邊指定位數後面的部分截去,即均以0記。與取整類似,比如參數為1即取整到十分位,如果是-1,則是取整到十位,以此類推。

⑦ 如何用sql語句將資料庫表中欄位內容中的數值進行求和

我把邏輯演算法告訴你 ,語句你就自己寫了。用replace函數 去掉對應的字元
例如:select replace(replace(欄位,'尊敬……金額',''),'元……變化','')
使用兩次REPLACE 第一次去掉前面的字元,第二次去掉後面的字元,只剩下數字了,再格式化這串數字為數值,不然語句出來只是個字元串

⑧ 用sql語句如何計算百分比或者統計數據個數

declare @biXiu int,@Zongshu int
select @biXiu=count(*) from course where type='必修'
select @Zongshu=count(*) from course
select cast(@biXiu*100.0/@Zongshu as varchar)+'%'
--其中 @biXiu代表必修個總數

--補充字元串說明
SELECT CAST('123.456' as decimal) 將會得到 123(小數點後面的將會被省略掉)。如果希望得到小數點後面的兩位。則需要把上面的改為SELECT CAST('123.456' as decimal(38, 2))

⑨ 如何計算SQL其中一個欄位的數據個數

你可以通過
select
count(*)
into
temp
from
tablename
where...
通過變數temp來返回符合要求的記錄數