⑴ sql取特定字元的前面幾位字元
MSSQL的就用這個吧,直接可以查詢出來
SELECT LEFT(MB002,PATINDEX('%-%',STUFF(MB002,PATINDEX('%-%',MB002),1,'*'))-1) FROM 表名
⑵ sql如何截取字元串中前面的數字
如果提取字元串中的數字,需要自定義函數,以下函數包含截取字元串中的數字、字母、漢字等。
createfunctionfn_myget
(@strasvarchar(max),
@categoryasvarchar(10)='Chinese',
@startasint=1,
@endasint=100000)
returnsvarchar(max)
as
begin
declare@iint=@start
declare@lenstrint=len(@str)
declare@str1varchar(max)
declare@strrevarchar(max)=''
while@i<=@lenstrand@i<=@end
begin
set@str1=substring(@str,@i,1);
--提取漢字
if(@Category='Chinese')
begin
if(len(@str1)!=datalength(@str1))
set@strre=@strre+@str1
end
--提取字母
elseif(@Category='Letters')
begin
if((ascii(@str1)>=65andascii(@str1)<=90orascii(@str1)>=97andascii(@str1)<=122))
set@strre=@strre+@str1
end
--提取數字
elseif(@Category='Digital')
begin
if(ascii(@str1)>=48andascii(@str1)<=57)
set@strre=@strre+@str1
end
else
set@strre='輸入錯誤'
set@i=@i+1
end
return(@strre)
end
測試:
1、截取字元串dsajf23423423中的數字
selectdbo.fn_myget('dsajf23423423','Digital',1,1000)
結果:
自定義函數說明:
函數共需要4個參數:
第一個參數是要截取的字元串;
第二個參數根據要截取的內容不同,分別有「Digital」(截取數字)、「Letters」(截取字母)、「Chinese」(截取中文);
第三個參數代表截取的起始位;
第四個參數代表截取的截取的結束位。
⑶ sql中如何在where字句里截取某個欄位的前幾位字元
sql中在where字句里截取字元方法如下:
1、如果是sqlserver:where left(p.end_time,4) = '2012'。
2、如果是Oracle:where substr(p.end_time,0,4) = '2012'。
舉例:
1、oracle: 'where substr(欄位名,1,2)='''123''''
2、sqlserver: 'where substring(欄位名,1,2)='''123''''
(3)sql怎麼截取前幾位擴展閱讀:
sql中,常用函數介紹:
1、AVG():返回平均值
2、COUNT():返回行數
3、FIRST():返回第一個記錄的值
4、LAST():返回最後一個記錄的值
5、MAX():返回最大值
6、MIN():返回最小值
7、SUM():返回總和
8、UCASE():將某個欄位轉換為大寫
9、LCASE():將某個欄位轉換為小寫
10、MID():從某個文本欄位提取字元
11、LEN():返回某個文本欄位的長度
12、ROUND():對某個數值欄位進行指定小數位數的四捨五入
13、NOW():返回當前的系統日期和時間
14、FORMAT():格式化某個欄位的顯示方式
15、INSTR():返回在某個文本域中指定字元的數值位置
16、LEFT():返回某個被請求的文本域的左側部分
17、RIGHT():返回某個被請求的文本域的右側部分
⑷ sql 取字元前幾位
left(字元串,要取的字元數)
從左邊第一個起取字元串的N個字元
樓上正解
⑸ SQL怎麼截取小數點前的數字,但是不要四捨五入
其實,你說的截取小數點前的數字,也就是將小數轉換為整數。
可以使用函數【cast】進行轉換
示例:將1234.9678轉為整數
selectcast(1234.9678asint)
輸出結果為:1234
⑹ sql中如何在where字句里截取某個欄位的前幾位字元
sql中在where字句里截取字元方法如下:
1、如果是sqlserver:where left(p.end_time,4) = '2012'。
2、如果是Oracle:where substr(p.end_time,0,4) = '2012'。
⑺ sql 查詢欄位中的前幾個字
可以使用:substr( string, start_position, [ length ] );string:源字元串;start_position:提取的位置,字元串中第一個位置始終為1;[ length ]:提取的字元數,如果省略,substr將返回整個字元串;
針對本例舉例說明:
select * from 表名wheresubstr([D],1,2)=「10」
語句功能說明:從指定表中查詢D欄位第1、2個字元為「10的記錄」。
(7)sql怎麼截取前幾位擴展閱讀:
注意事項
語法:substr(string,start,length)
string參數:必選。資料庫中需要截取的欄位。
start參數:必選。
正數,從字元串指定位子開始截取;負數,從字元串結尾指定位子開始截取;0,在字元串中第一個位子開始截取。1,同理。(特殊)
length參數:可選。需要截取的長度。預設,即截取到結束位置。
注意:若必選參數為空,那返回的結果也為空。
⑻ sql 怎麼截取字元串前幾個字元
用 substr(column,1,n) 從第幾位開始截 截幾位
left(column,n)
right(column,n)
⑼ sql中截取指定字元的前幾位
select substring(ID,charindex('.',ID)+1,(charindex('$',ID)-charindex('.',ID)-1)) as idx