⑴ sql中怎樣提取純數字或者純字母的欄位
完全按照DB2語法設計:
drop function TEST
go
create function test(@input varchar(100))
returns int
begin atomic
declare @int int default 0;
declare @input_lenght int default 0;
set @input_lenght = length(@input);
while @input_lenght <> 0 do
if ( substr(@input,length(@input) - @input_lenght +1,1) in ('0','1','2','3','4','5','6','7','8','9') ) then
set @int = @int + 0;
elseif ( substr(@input,length(@input) - @input_lenght +1,1) in ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')) then
set @int = @int - 1;
end if;
set @input_lenght = @input_lenght -1;
end while;
if ( @int = 0 or @int = -1* length(@input)) then --- 如果累積為0全是數字;如果累積正好是-1乘以長度則正好全是欄位
return 0;
else
return 1;
end if;
end
go
select test ('123456') from sysibm.al 結果是 0
select test ('123b456a') from sysibm.al 結果是 1
select test ('abcdefg') from sysibm.al 結果是 0
⑵ SQL怎麼截取小數點前的數字,但是不要四捨五入
其實,你說的截取小數點前的數字,也就是將小數轉換為整數。
可以使用函數【cast】進行轉換
示例:將1234.9678轉為整數
selectcast(1234.9678asint)
輸出結果為:1234
⑶ 從sqlserver資料庫中提取日期,並把年月日分別截取出來
可以用substring截取,也可以轉換成datetime然後用year、month、day三個函數計算
以標准日期格式2012-12-19
10:50:02.000為例
substring(col,1,4)=year
substring(col,6,2)=month
substring(col,9,2)=day
year(convert(datetime,col))、month(convert(datetime,col))、day(convert(datetime,col))
⑷ 【搬運】Sql Server中截取字元串的常用方法
1、LEFT() 從左邊截
語法:LEFT(character,integer) 返回 從字元串左邊開始 指定個數的字元
說明:參數1:要截取的字元串,參數2:截取字元個數
示例:selectLEFT('SqlServer_2008',3)
結果:Sql
2.RIGHT() 從右邊截
語法:RIGHT(character,integer) 返回 從字元串右邊開始 指定個數的字元
說明:參數1:要截取的字元串,參數2:截取字元個數
示例:selectLEFT('SqlServer_2008',4)
結果:2008
3.SUBSTRING() 中間截
語法:SUBSTRING(character,start,length) 返回從字元串 中間 的字元
說明:參數1:要截取的字元串,參數2:開始截取的位數,參數3:要截取的字元長度
示例:selectSUBSTRING('SqlServer_2008',4,6)--4)
結果:Server
以上。
https://www.cnblogs.com/xielong/p/7670757.html
感謝二位!
⑸ sql 截取前8位和最後4位
1、SUBSTRING
返回字元、binary、text或 image表達式的一部分。有關可與該函數一起使用的有效 Microsoft® SQL Server™數據類型的更多信息,請參見數據類型。
語法
SUBSTRING(expression , start , length )
參數
expression
是字元串、二進制字元串、text、image、列或包含列的表達式。不要使用包含聚合函數的表達式。
start
是一個整數,指定子串的開始位置。
length
是一個整數,指定子串的長度(要返回的字元數或位元組數)。
substring()
——任意位置取子串
2、left() 和right()
——左右兩端取子串
示例:
declare@strvarchar(100);
set@str='gwengnwelgkweg';
selectSubstring(@str,0,8)--從左邊第一位開始,截取8位
selectSubstring(@str,Len(@str)-4,4)--截取後4位
--left()right()
selectleft(@str,8)--截取前8位
selectright(@str,4)--截取後4位
⑹ sql 中 如何截取一個欄位的某部分並同時與某一數值比較大小
你說的函數是oracle中的substr,sqlserver中的substring
下面是貼來的,就是手冊翻譯而來的,你隨便看看吧
語法
SUBSTRING
(
expression
,
start
,
length
)
參數
expression
是字元串、二進制字元串、text、image、列或包含列的表達式。不要使用包含聚合函數的表達式。
start
是一個整數,指定子串的開始位置。
length
是一個整數,指定子串的長度(要返回的字元數或位元組數)。
說明
由於在
text
數據上使用
SUBSTRING
時
start
和
length
指定位元組數,因此
DBCS
數據(如日本漢字)可能導致在結果的開始或結束位置拆分字元。此行為與
READTEXT
處理
DBCS
的方式一致。然而,由於偶而會出現奇怪的結果,建議對
DBCS
字元使用
ntext
而非
text。
返回類型
如果
expression
是支持的字元數據類型,則返回字元數據。如果
expression
是支持的
binary
數據類型,則返回二進制數據。
返回字元串的類型與給定表達式的類型相同(表中顯示的除外)。
給定的表達式
返回類型
text
varchar
image
varbinary
ntext
nvarchar
注釋
在字元數中必須指定使用
ntext、char
或
varchar
數據類型的偏移量(start
和
length)。在位元組數中必須指定使用
text、image、binary
或
varbinary
數據類型的偏移量。
說明
兼容級別可能影響返回值。有關兼容級別的更多信息,請參見
sp_dbcmptlevel。
示例
A.
在字元串上使用
SUBSTRING
下例顯示如何只返回字元串的一部分。該查詢在一列中返回
authors
表中的姓氏,在另一列中返回
authors
表中的名字首字母。
USE
pubs
SELECT
au_lname,
SUBSTRING(au_fname,
1,
1)
FROM
authors
ORDER
BY
au_lname
下面是結果集:
au_lname
----------------------------------------
-
Bennet
A
Blotchet-Halls
R
Carson
C
DeFrance
M
del
Castillo
I
...
Yokomoto
A
(23
row(s)
affected)
下例顯示如何顯示字元串常量
abcdef
中的第二個、第三個和第四個字元。
SELECT
x
=
SUBSTRING('abcdef',
2,
3)
下面是結果集:
x
----------
bcd
(1
row(s)
affected)
⑺ sql中怎麼去截取一個冒號後面的一串數字
sql中怎麼去截取一個冒號後面的一串數字?1、首先在桌面上,點擊「Management Studio」圖標。
2、之後在該界面中,點擊左上角「新建查詢」選項。
3、接著在該界面中,輸入截取指定欄位某一個字元出現後的後面的字元串的sql語句「
select substring(name,charindex(',',name)+1,len(name)-charindex(',',name)) from test2;」。
4、然後在該界面中,點擊左上方「執行」按鈕。
5、最後在該界面中,顯示截取指定欄位某一個字元出現後的後面的字元串成功