惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - kittow╃天笑╃

[收藏]Enterprise Library系列文章回顾与总结 [转贴]收集C++从菜鸟到大虾全程参考图书 - kittow╃天笑╃ - 博客园 《企业级应用开发--使用VS.NET、UML和MSF》 - kittow╃天笑╃ - 博客园 敏捷开发基本要素 [转贴]三层式开发中的层次划分讨论 [收藏].Net下的N层架构设计 创意的舞台——WEBGAME面面观 - kittow╃天笑╃ - 博客园 [原创]Tsys 2.0 beta 官方版无法使用自定义SQ - kittow╃天笑╃ Web服务器同时允许内外网访问和隔离的安全问题 [转贴]ASP优化之显示数据查询内容 - kittow╃天笑╃ - 博客园 [原创]只看最经典的技术书籍! 全面迎接SVN时代来临 [收藏]设计,看上去很美 Web2.0关程序员什么事?(AND 相关资料收藏) 用户体验(UE)的3个关键 [精华]如何编写高质量的VB代码 [收藏]ASP与ActiveX控件交互实战(连载) [推荐]网站项目成功管理实践(上)(下) 打造最完美的BLOG系统 Web 2.0 网站成功的关键
[收藏]整理了一些T-SQL技巧
kittow╃天笑╃ · 2006-04-21 · via 博客园 - kittow╃天笑╃
 

[收藏]整理了一些T-SQL技巧

一、 只复制一个表结构,不复制数据
二、 获取数据库中某个对象的创建脚本
三、 分隔字符串
四、 一条语句执行跨越若干个数据库
五、 怎样获取一个表中所有的字段信息
六、 时间格式转换问题
七、 分区视图
八、 树型的实现
九、 排序问题
十、 一条语句删除一批记录
十一、获取子表内的一列数据的组合字符串

一、 只复制一个表结构,不复制数据

[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