[收藏]整理了一些T-SQL技巧
生活随笔
收集整理的這篇文章主要介紹了
[收藏]整理了一些T-SQL技巧
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[收藏]整理了一些T-SQL技巧一、?只復制一個表結構,不復制數據
二、?獲取數據庫中某個對象的創建腳本
三、?分隔字符串
四、?一條語句執行跨越若干個數據庫
五、?怎樣獲取一個表中所有的字段信息
六、?時間格式轉換問題
七、?分區視圖
八、?樹型的實現
九、?排序問題
十、?一條語句刪除一批記錄
十一、獲取子表內的一列數據的組合字符串
一、?只復制一個表結構,不復制數據
如果有一個用逗號分割開的字符串,比如說"a,b,c,d,1,2,3,4",如何用t-sql獲取這個字符串有幾個元素,獲取第幾個元素的值是多少呢?因為t-sql里沒有split函數,也沒有數組的概念,所以只能自己寫幾個函數了。
1、?獲取元素個數的函數
因為新開發的軟件需要用一些舊軟件生成的一些數據,在時間格式上不統一,只能手工轉換,研究了一下午寫了三條語句,以前沒怎么用過convert函數和case語句,還有"+"操作符在不同上下文環境也會起到不同的作用,把我搞暈了要,不過現在看來是差不多弄好了。
?
二、?獲取數據庫中某個對象的創建腳本
三、?分隔字符串
四、?一條語句執行跨越若干個數據庫
五、?怎樣獲取一個表中所有的字段信息
六、?時間格式轉換問題
七、?分區視圖
八、?樹型的實現
九、?排序問題
十、?一條語句刪除一批記錄
十一、獲取子表內的一列數據的組合字符串
?
?
一、?只復制一個表結構,不復制數據
?
?
[quote]?selec?top?0?*?into?[t1]?from?[t2][/quote]?
?
三、?分隔字符串如果有一個用逗號分割開的字符串,比如說"a,b,c,d,1,2,3,4",如何用t-sql獲取這個字符串有幾個元素,獲取第幾個元素的值是多少呢?因為t-sql里沒有split函數,也沒有數組的概念,所以只能自己寫幾個函數了。
1、?獲取元素個數的函數
?
?
| create?function?getstrarrlength?(@str?varchar(8000)) returns?int as begin ??declare?@int_return?int ??declare?@start?int ??declare?@next?int ??declare?@location?int ??selec?@str?=','+?@str?+',' ??selec?@str=replace(@str,',,',',') ??selec?@start?=1 ??selec?@next?=1? ??selec?@location?=?charindex(',',@str,@start) ??while?(@location?<>0) ??begin ????selec?@start?=?@location?+1 ????selec?@location?=?charindex(',',@str,@start) ????selec?@next?=@next?+1 ??end ?selec?@int_return?=?@next-2 ?return?@int_return end |
?
?
六、?時間格式轉換問題因為新開發的軟件需要用一些舊軟件生成的一些數據,在時間格式上不統一,只能手工轉換,研究了一下午寫了三條語句,以前沒怎么用過convert函數和case語句,還有"+"操作符在不同上下文環境也會起到不同的作用,把我搞暈了要,不過現在看來是差不多弄好了。
?
?
1、把所有"70.07.06"這樣的值變成"1970-07-06"?
?
| UPDATE?lvshi SET?shengri?=?'19'?+?REPLACE(shengri,?'.',?'-') WHERE?(zhiyezheng?=?'139770070153') |
?
?
?
2、在"1970-07-06"里提取"70","07","06"?
?
| selec?SUBSTRING(shengri,?3,?2)?AS?year,?SUBSTRING(shengri,?6,?2)?AS?month,? ??????SUBSTRING(shengri,?9,?2)?AS?day FROM?lvshi WHERE?(zhiyezheng?=?'139770070153') |
?
?
3、把一個時間類型字段轉換成"1970-07-06"?
?
| UPDATE?lvshi SET?shenling?=?CONVERT(varchar(4),?YEAR(shenling))? ??????+?'-'?+?CASE?WHEN?LEN(MONTH(shenling))?=?1?THEN?'0'?+?CONVERT(varchar(2),? ??????month(shenling))?ELSE?CONVERT(varchar(2),?month(shenling))? ??????END?+?'-'?+?CASE?WHEN?LEN(day(shenling))?=?1?THEN?'0'?+?CONVERT(char(2),? ??????day(shenling))?ELSE?CONVERT(varchar(2),?day(shenling))?END WHERE?(zhiyezheng?=?'139770070153') |
?
?
http://dev.csdn.net/develop/article/83/83138.shtm轉載于:https://www.cnblogs.com/kittow/archive/2006/04/21/380889.html
總結
以上是生活随笔為你收集整理的[收藏]整理了一些T-SQL技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生意如何谈成
- 下一篇: [转] 《完美程式设计指南》Effect