當前位置:首頁 » 編程語言 » sql取數

sql取數

發布時間: 2022-01-12 06:23:24

『壹』 sql,字元串中取數字

1、創建測試表,

create table test_str(id int, v_str varchar2(20));

『貳』 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都不一樣 這兩個放一起有點囧吧...
資料庫中日期為字元串 則將日期函數替換為相應的字元串函數
以上回答你滿意么?

『叄』 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表

有問題追問

『肆』 sql 取數

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

『伍』 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
*************************************************

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

『陸』 SQL如何取數據

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

『柒』 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

『捌』 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(+)

熱點內容
安卓手機怎麼轉移蘋果系統 發布:2024-09-17 04:19:07 瀏覽:934
sql從表中查詢數據 發布:2024-09-17 04:19:07 瀏覽:972
米粒泥解壓 發布:2024-09-17 04:19:01 瀏覽:729
2010word加密方法 發布:2024-09-17 04:17:36 瀏覽:282
crv哪個配置性價比高2021 發布:2024-09-17 04:07:51 瀏覽:36
wincc圖形編譯在哪裡 發布:2024-09-17 03:58:26 瀏覽:978
androidubuntu 發布:2024-09-17 03:50:27 瀏覽:702
識夢源碼 發布:2024-09-17 03:50:18 瀏覽:27
諾基亞密碼忘了打什麼電話 發布:2024-09-17 03:27:09 瀏覽:556
樹深度優先演算法 發布:2024-09-17 03:26:58 瀏覽:474