sql总结

数据库总结

  1. LEN是把字符串前导尾随空格把它们包含计算内,去掉空格的就是.
  2. LTRIM 是删除字符串前面的空格 而RTRIM是删除字符串后面的空格。

LTRIM 不删除空格字符,如制表符或换行符。Unicode 为许多不同类型的空格提供码位,但是该函数仅识别 Unicode 码位 0x0020。双字节字符集 (DBCS) 字符串转换为 Unicode 时,它们可能包含 0x0020 之外的空格字符,而该函数无法删除此类空格。若要删除所有类型的空格,可以在从脚本组件运行的脚本中使用 Microsoft Visual Basic .NET LTrim 方法。

  1. 数据库varchar(2)或varchar(4)定义字符串是尽量定义2的n次幂;
  2. Union all 使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。
  3. 在建立新项目时,建议留有几个备用字段,(在项目期间,看到的现象就是加字段,这样改动太麻烦,留有备用字段可到以后扩展是使用,varchar他是会自动伸缩的,不影响性能的。)
  4. 说明:四表联查问题:
    select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
  5. select top 10 * from tb_Special order by newid()出现随机十条数据
  6. 说明:外连接查询(表名1:a 表名2:b)
     1 select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
     2 left Outer join on =left join on
     3 
     4 牛人的数据集连接
     5 select cand2.*,d.tid,ISNULL(d.tid,0) as IsCheck,ISNULL(d.Title,'无主题')as title from
     6 
     7                 (select cand.id,title.id as tid,title.Title from tb_v_candidate cand
     8 
     9                 left  join  tb_v_voteitem item on cand.id = item.cid
    10 
    11                 left  join tb_v_votetitle title on item.tpid = title.id
    12 
    13                 where item.tpid = '') d right join tb_v_candidate cand2 on d.id = cand2.id
    View Code
  7.  对指定的集求值,删除该集中的重复元组,然后返回结果集(查询出来是条天只有一列有区别,但不能作为条件的前提下这样用 结果是显示一条)黄色字段两处必须保持一致才可用
     1 例如:select b.[BreakNo],b.[WaterNo]b.[MarketID],b.[MarketName] b.[ContractNo],,b.[RequestNo] ,b.[RequestAlias] ,
     2 
     3 ,m.[ContractNo] ,m.[SMemberID] ,m.[SMemberName] ,m.[BMemberID]
     4 
     5 ,m.[BMemberName] ,m.[Status] ,m.[StatusName] ,m.[Memo] ,m.[TradeType]
     6 
     7 from tb_Delivery_Break b inner join
     8 
     9 (SELECTdistinct [ContractNo],[SMemberID],[SMemberName],
    10 
    11 [BMemberID],[BMemberName],[Status],[StatusName],[Memo],[TradeType]
    12 
    13 FROM[HLERP_Market].[dbo].[tb_Delivery])as m On
    14 
    15 b.ContractNo=m.ContractNo where  b.MarketID='003'
    View Code

    8.游标总结

  
 1 FETCH :返回针对连接当前打开的任何游标发出的上一条游标FETCH语句的状态
 2 
 3 OPEN:打开Transtact-sql 服务器游标,然后通过执行在DECLARE CURSOR或 SET
 4 
 5 CURSOR_VARIABLE 语句中制定的Transtact—SQL语句填充游标
 6 
 7  
 8 
 9 DECLARE AddSpecial CURSOR FOR --AddSpecial创建游标的名字
10 
11          SELECT a FROM f_split(@SpecialNo,',')--把获取游标集合截取出来
12 
13          OPEN AddSpecial
14 
15  ETCH NEXT FROM AddSpecial INTO @special --分开插入
16 
17 WHILE(@@FETCH_STATUS=0) --循环游标
18 
19                    BEGIN
20 
21                             IF @special<>''22 
23                             BEGIN
24 
25                                      Sql语句处理
26 
27                                      END
28 
29                             END
30 
31 FETCH NEXT FROM AddSpecial INTO @special  //FETCH返回针对连接当前打开的任何游标发出的上一条游标 FETCH 语句的状态。
32 
33                    END
34 
35          CLOSE AddSpecial --关闭游标
36 
37 DEALLOCATE AddSpecial --释放游标
View Code

9.DECLARE @SummaryID varchar(128) --摘要ID      

1 if(CHARiNDEX(',',@MarketID)>0)--查找MarketId字符串是否”,“
2 
3           begin
4 
5                    select top(1) @SummaryID=a from f_split(@MarketID,',')
6 
7                    where a not in (select top(1) a from f_split(@MarketID,','))-- 取逗号后面的
8 
9                    select top(1) @MarketID=a from f_split(@MarketID,',')-- 取逗号前面的,
View Code

为什么把逗号前 的放到最后就是因为存放字符串是放到了MarkeID里面放到前面的话逗号就不存在了,就截取不到了

SQL Server基本函数

1.字符串函数 长度与分析用

1,datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格
2,substring(expression,start,length) 取子串,字符串的下标是从“1”,start为起始位置,length为字符串长度,实际应用中以len(expression)取得其长度
3,right(char_expr,int_expr) 返回字符串右边第int_expr个字符,还用left于之相反
4,isnull( check_expression , replacement_value )如果check_expression為空,則返回replacement_value的值,不為空,就返回check_expression字符操作类

5,Sp_addtype 自定义数据类型
例如:EXEC sp_addtype birthday, datetime, 'NULL'

6,set nocount {on|off}

使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。
SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。
SET NOCOUNT 为 OFF 时,返回计数

7.SQL查询中,如何判断一个字符串字段的内容的长度
select * from TopicTag where len(Label)<2

 
   
posted on 2011-11-30 18:12 蕙草 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/huicao/archive/2011/11/30/2269473.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值