A. sql字元轉換成數值
TAOJ@orcl> select * from test;
A
---------------
100/5
200/4
125/5
已用時間: 00: 00: 00.00
TAOJ@orcl> select substr(A,1,instr(A,'/',1)-1)/substr(A,instr(A,'/',1)+1) A from test;
A
----------
20
50
25
已用時間: 00: 00: 00.00
sqlserver裡面用CHARINDEX函數,自己寫吧
B. SQL語句,資料庫中,我要將字元串轉換為數值應該用什麼函數。
Int(number) : 轉換為小於或等於接收參數的最大整數值,
CInt(number) :轉換為表達式為Integer 型的數值,
CLng(number): 轉換為表達式為Long 型的數值,
Fix(number) :去掉參數的小數部分並傳回,
cCur(number) :轉換為 Currency 子類型的數值
以上請選擇使用。
C. 如何將sql 中的字元串轉換成數字,和如何將數字轉換成字元串
num1是主鍵,類型是int,num2是外鍵,類型是text, num2中可以是多個值也可以使一個值,如num2中一列有4個值(1,2,3,4),num1中分別有4列值為1,2,3,4,要num1和num2比較,num1=num2,如何把num2轉換為單獨的1,2,3,4
我要查詢,select * from table1,table2 where num1=num2 那num1=num2這塊怎麼寫啊,num1是4個值,num2是一個值,查出來的結果也是4個值的
D. sql 字元轉換數值
select cast('12.5' as float)
select convert(float,'12.5')
這兩種方法在MS SQL中效果是一樣的,
但前者可以直接移植到ORACLE中使用.
E. SQL中字元串轉換成數值
4、數據類型轉換函數
函數名 操作 例 結果
ASC(S) 求第一個字元串的ASCII碼 ASC("what") 87
CHR(N) 求ASCII碼的字元 CHR(87) w
STR(R,L,D) 數值轉換成字元,L為長度,D為小數位數 X=3.1415
STR(X,6,2) 3.14
VAL(S) 字元串轉換為數值 VAL("123") 123.00
CTOD(S) 字元串轉日期 CTOD('11/01/2002') 11/01/2002
DTOC(D) 日期轉換成字元串 DTOC(DATE()) 11/01/2002
DTOS(D) 把日期轉成年月日式的字元串 DTOS(DATE()) 20021101
CTOT(C) 字元串轉成日期時間型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am
DTOT(D) 日期型轉為日期時間型 DTOT(DATE()) 11/25/2001 00:00:01am
TTOC(T) 日期時間型轉為字元型 TTOC(DATETIME()) 11/25/2001 00:00:01am
TTOD(T) 日期時間型轉為日期型 TTOD(DATETIME()) 11/25/2001
IIF(LE,E1,E2) 邏輯判斷 IIF(A>0,"YES","NO") YES
F. sql server中的怎麼把數值型轉換為字元串
有兩種。
1.轉換(int,欄位名)
例如:選擇convert(int,'3')
選擇cast('3'作為int)
一般來說,沒有必要將字元串轉換為數字類型,如果你需要比較兩個欄位是相等的,但為字元串類型欄位,類型,用「=」來比較這兩個值是相等的,SQLSERVER將自動將字元串轉換為一個數字,然後比較。
(6)sql換字元串對應值擴展閱讀:
注意事項:
這兩個函數都執行強制轉換,但是語法不同。據說有一些不同的轉換,但我更習慣於使用轉換函數,它更像一個函數的語法一方面,可以指定的格式轉換,將時間和價值轉換為一個字元串。
對於數據類型的確切值,轉換後的字元串是我們存儲的值。如:
聲明@iintset@i=123456789print'test:'+轉換(varchar(20),@i)
輸出是:test:123456789
對於具有近似值的數據類型,情況就不那麼簡單了。
聲明@ifloatset@i=123456789print'test:'+轉換(varchar(20),@i):test:1.23457e+008
G. SQL語言,我將數字轉成字元串,數字的值變了。詳情如下
double是浮點數,任意將數字從十進制轉化到二進制存儲的,不管用多少位,都有可能出現數據偏差,只是位數越多,偏差越小。
只有用string直接存放才可保證絕對准確。
H. 通過sql用結果集替換字元串中的對應值,怎麼寫sql
通過sql用結果集替換字元串中的對應值,怎麼寫sql
用replace函數將年,月替換成橫杠,日替換成空,從而形成tb的標准日誌格式,然後再做比較。這里給出replace的示例:
select replace(replace(REPLACE('2017年01月01日', '年', '-'), '月', '-'), '日', '')
注: 此replace函數在SQL Server資料庫上適用,其他資料庫可能要做相應調整。
I. SQL中怎麼將字元串轉
在SQL SERVER 2005中,將表中字元串轉換為數字的函數共2個:
1. convert(int,欄位名) 例如:select convert(int,'3')
2. cast(欄位名 as int) 例如:select cast('3' as int)
其實,一般情況下沒有必要把字元串轉換為數字類型
假如需要比較兩個欄位是否相等,但是一個欄位為字元串類型,一個為數字類型,用「=」比較兩個值是否相等時,SQL SERVER會自動把字元串轉換為數字再比較的!
例如:
select da.TITLE_NAME,dsc.NAME
from dbo.DV_DUTY dd
inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA)
left join DV_ASSET da on(da.ID=dd.RECORD_ID and dd.TYPE='2')
where dd.AREA is not null
這個SQl中,inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA) 中dsc.ID為數字類型,dd.AREA為字元類型,相當於這樣on(1='1')的判斷,這時候就會自動吧字元串的'1'轉換為數字類型再比較的。
但是也有弊端,一旦字元類型轉換為數字類型出錯(說明字元串的確就非數字組成的),SQL就會拋出異常。
SQL SERVER 2005中有判斷欄位是否為數字的函數:
ISNUMERIC(欄位名) -----假如欄位是數字類型返回1,不是就返回0
但是好像有的時候不好使,比如:select isnumeric('3,34') 就返回1
說明這個函數對欄位值中全是數字但是數字間用「,」和「.」(逗號或點)隔開的都視為數字了!
J. 在sql server2000中,如何把整型欄位轉換成字元串型欄位
使用函數STR()
STR
由數字數據轉換來的字元數據。
語法
STR ( float_expression [ , length [ , decimal ] ] )
參數
float_expression
是帶小數點的近似數字 (float) 數據類型的表達式。不要在 STR 函數中將函數或子查詢用作 float_expression。
length
是總長度,包括小數點、符號、數字或空格。默認值為 10。
decimal
是小數點右邊的位數。
返回類型
char
注釋
如果為 STR 提供 length 和 decimal 參數值,則這些值應該是正數。在默認情況下或者小數參數為 0 時,數字四捨五入為整數。指定長度應該大於或等於小數點前面的數字加上數字元號(若有)的長度。短的 float_expression 在指定長度內右對齊,長的 float_expression 則截斷為指定的小數位數。例如,STR(12,10) 輸出的結果是 12,在結果集內右對齊。而 STR(1223, 2) 則將結果集截斷為 **。可以嵌套字元串函數。
說明 若要轉換為 Unicode 數據,請在 CONVERT 或 CAST 轉換函數內使用 STR。
示例
A. 使用 STR
下例將包含五個數字和一個小數點的表達式轉換為有六個位置的字元串。數字的小數部分四捨五入為一個小數位。
SELECT STR(123.45, 6, 1)
GO
下面是結果集:
------
123.5
(1 row(s) affected)
當表達式超出指定長度時,字元串為指定長度返回 **。
SELECT STR(123.45, 2, 2)
GO
下面是結果集:
--
**
(1 row(s) affected)
即使數字數據嵌套在 STR內,結果集也是帶指定格式的字元數據。
SELECT STR (FLOOR (123.45), 8, 3)
GO
下面是結果集:
--------
123.000
(1 row(s) affected)