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

sql取數

發布時間: 2022-01-22 00:45:00

A. sql server 中怎樣從欄位中取數字

selectSUBSTRING(規格,CHARINDEX('*',規格)+1,len(規格)-CHARINDEX('*',規格)-patindex(N'%[1234567890]%',reverse(SUBSTRING(規格,CHARINDEX('*',規格)+1,len(規格)-CHARINDEX('*',規格))))+1)fromtest

不如出庫以後再處理。

B. sql如何讀取數據

設:
*前字元數不定
)後字元數不定
取*到)之間的字元
代碼如下:

select substring(貨名,charindex('*',貨名),len(charindex('(',貨名))-len(charindex('*',貨名))) from 表名 where 。。。。。。。

如果需要數字轉換下:
select cast(substring(貨名,charindex('*',貨名),len(charindex('(',貨名))-len(charindex('*',貨名))) as int) from 表名 where 。。。。。。。

C. SQL如何取數據

你的結果集是一個列的數據,如果你非要用變數來取這三個值就寫死代碼吧。或者用游標循環取

D. SQL如何取數字 各個位上的個十百千萬

先將整型轉換成字元串,再來做截取:

用到函數:
用到cast轉換
substring截取

selectid,SUBSTRING(cast(欄位asvarchar(8)),1,1),SUBSTRING(cast(欄位asvarchar(8)),2,1),SUBSTRING(cast(欄位asvarchar(8)),3,1),SUBSTRING(cast(欄位asvarchar(8)),4,1)from表

有問題追問

E. SQL資料庫如何提取數據

1、查詢資料庫(test)中的所有表名的方法:

SELECT name
FROM [test]..sysobjects where xtype='U'
********
補充:
如果有的表不存在【時間】那就用下面的語句直接把含有【時間】列的表名找到:
SELECT d.name
FROM [test]..syscolumns a
inner join [test]..sysobjects d on a.id=d.id and d.xtype='U' and a.name='時間'
**********

2、遍歷這個表名取出數據插入到另外的資料庫中(SqlServer中的遍歷方法我不是很清楚,給你提供個思路,oracle的話我就能把程序寫出來了O(∩_∩)O~)。

如:遍歷結果存儲到資料庫test2中
insert into [test2]..遍歷出的表名 select * from 遍歷出的表名 where datediff(day,'2009-08-07',時間)>0;

重復上面的sql語句指導講資料庫test中的表名完全遍歷完為止。

*************************************************************
補充:我試驗了一下下面把實驗代碼給你(建一個存儲過程)
create proc test as
--定義游標變數
declare cur1 cursor for
SELECT d.name
FROM [test]..syscolumns a
inner join [test]..sysobjects d on a.id=d.id and d.xtype='U' and a.name='時間'
--定義臨時變數
declare @tmp varchar(1000)
--定義sql字元串
declare @strsql varchar(4000)
--打開游標
open cur1
--讀取第一條數據,也就是第一個表名
fetch next from cur1 into @tmp
--是讀完
while(@@fetch_status = 0)
begin
--連接sql文
set @strsql='insert into [test2]..'+@tmp++' select * from '+@tmp+' where datediff(day,'+char(39)+'2009-08-07'+char(39)+',時間)>0'
--執行這個sql
exec(@strsql)
--讀取下一條數據
fetch next from cur1 into @tmp
end
--關閉游標
close cur1
--摧毀游標所佔資源
deallocate cur1
*************************************************

---
以上,希望對你有所幫助。

F. sql 取數問題

SELECT B.TYPE, MONTH(A.開始日期), COUNT(A.ID) AS 開始個數,
COUNT( CASE WHEN C.結束日期 IS NOT NULL AND C.結束日期 <> '' THEN A.ID ELSE NULL END) AS 結束個數,
CASE WHEN C.結束日期 IS NOT NULL AND C.結束日期 <> '' THEN DAYS(C.結束日期) - DAYS(A.開始日期) ELSE NULL END AS 處理時間
FROM A
LEFT JOIN B ON A.ID = B.ID
LEFT JOIN C ON A.ID = C.ID
WHERE (A.開始時間 >= 日期范圍(開始時間))
GROUP BY B.TYPE,
CASE WHEN C.結束日期 IS NOT NULL AND C.結束日期 <> '' THEN DAYS(C.結束日期) - DAYS(A.開始日期) ELSE NULL END

話說 個數是個統計量 處理時間則針對每個ID都不一樣 這兩個放一起有點囧吧...
若資料庫中日期為字元串 則將日期函數替換為相應的字元串函數
以上回答你滿意么?

G. SQL 取數問題,謝謝

不太清楚開始個數和結束個數是什麼意思,所以只寫了個大概,僅供參考吧:

SELECT A.ID, A.開始時間, B.TYPE, C.結束日期
FROM TABLE_A A, TABLE_B B, TABLE_C C
WHERE A.ID = B.ID(+)
AND A.ID = C.ID(+)

H. sql 取數

select NO,sum(Qtity),sum(Qtity*money) from table group by NO

I. sql 如何取中間數

如果是字元串 就這樣
select substring('123456',2,2)...

如果是數字類型
則:select substring(to_char(123456),2,2)...

J. SQL怎樣取出字元串中的數字

比如你的表叫作TALBE1,欄位是str1,類型為nvarchar,那麼找出有湘政發的最大號加1這樣寫
select max(convert(int,substring(str1,patindex(N'%[1234567890]%',str1),len(str1)-patindex(N'%[1234567890]%',str1)+1-patindex(N'%[1234567890]%',reverse(str1))+1)))+1 from table1 where str1 like N'%湘政發%'
測試通過,耗時很長,請認真試試。
這是sql server 的寫法。

如果是ORACAL或其它的SQL語言您可以到這里參考一下。你會發現,用SQL SERVER我的方法要比他的好
http://book.csdn.net/bookfiles/530/10053017904.shtml