sql提取欄位
⑴ 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''''
(1)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提取欄位值
首先該程序不可能一步達到要求的結果,原因很簡單:沒有相關的系統函數。
我編程實現,大概思路:
計算userid各自長度。
在userid中查找「幫助」。
刪除「幫助」及幫助以後的字元。
插入到table2中。
具體實現:
--編寫一個游標,從table1大量數據中一條條取出issid等於1的數據
declare @local_variant char(200)
declare cursor_name cursor for
select userid from table1 where issid='1'
open cursor_name
fetch next from cursor_name into @local_variant
--對userid進行處理
declare @location int
declare @change_data char(200)
--幫助出現的位置
set @location = select patindex("幫助",@local_variant)
--獲得幫助前的數據
set @change_data = select substring(@local_variant,1,@location-1)
--第一條數據處理完成,可以插入了
insert into table2(select issid ,a,b,c from table1)AS A value(@change_data,A.issid,A.a,A.b,A.c,e)where issid = "1"
你可以用while循環補全。
⑶ sql語句從表中提取滿足條件的欄位
指定select 欄位就可以了
select商品名稱from表A;
⑷ sql 取欄位中的部分數據
直接用replace就好了,,,只不過分別執行4次而已
首先在欄位的結尾都更新個';'符號
然後在replace
給你舉個例子,例如2
update
表
set
欄位=replace(欄位,'2;','')
後面的3個數字一樣的方式更新
⑸ 如何用SQL語句取出資料庫中的特定一條數據
通過查詢語句select * from user where id=1
我不知道你這個username指的是不是欄位,如果是要取出表中某個欄位的值。
可以通過select 欄位名1,欄位名2 ... from user where id=1。
⑹ 運用SQL如何提取想要的欄位
這是提取某字元欄位中的字元與之相似的。
SQL=Select 欄位1 from tabel where 欄位1' like '%喜歡%'
由於通配符的緣故,導致我們查詢特殊字元「%」、「_」、「[」、「';」的語句無法正常實現,而把特殊字元用「[ ]」括起便可正常查詢。
⑺ sql 提取欄位某位內容
Select
substring
(欄位,5,6)
可以提取欄位內
5-10位的內容
但如果欄位值長度本身不足5位,就取不到了
⑻ SQL 截取欄位
返回字元、binary、text 或 image 表達式的一部分。有關可與該函數一起使用的有效 Microsoft? SQL Server? 數據類型的更多信息,請參見數據類型。
語法
SUBSTRING ( expression , start , length )
參數
expression是字元串、二進制字元串、text、image、列或包含列的表達式。不要使用包含聚合函數的表達式。
start 是一個整數,指定子串的開始位置。
length 是一個整數,指定子串的長度(要返回的字元數或位元組數)。
返回從字元串左邊開始指定個數的字元。
語法
LEFT ( character_expression , integer_expression )
參數
character_expression 字元或二進制數據表達式,可以是常量、變數或列。
character_expression 必須是可以隱式地轉換為 varchar 的數據類型。否則,請使用 CAST 函數顯式轉換 character_expression。
integer_expression 是正整數。如果 integer_expression 為負,則返回空字元串。
返回類型
varchar
返回字元串中從右邊開始指定個數的 integer_expression 字元。
語法
RIGHT ( character_expression , integer_expression )
參數
character_expression 由字元數據組成的表達式。character_expression 可以是常量、變數,也可以是字元或二進制數據的列。
integer_expression 是起始位置,用正整數表示。如果 integer_expression 是負數,則返回一個錯誤。
返回類型
varchar
substr( string, start_position, [ length ] )
⑼ 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截取欄位
截取字元串,如:
select substring('abcdefg',1,4)
得到的結果是abcd,即從第一位開始,截取4位