• 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

    
    
  • 相关阅读:
    【Blog怎么玩】如何修改博客地址栏logo—怎样查找和制作ico文件
    【Blog怎么玩】怎么给博客添加支付宝/微信打赏按钮—tctip打赏插件开源
    【免费开源网站】利用乐云xzc.cn结合百度网盘来收作业
    【数字信号处理不挂科-笔记】第三讲-离散傅立叶变换
    【数字信号处理不挂科-笔记】第一讲-离散时间信号与系统
    【Blog怎么玩】学长教你怎么在博客里播放音乐+krc转lrc(krc2lrc)
    【南工程开源计划-通信网】南工程通信09级A卷-通信网
    【南工程开源计划-通信网】南工程通信07级A卷-通信网
    【南工程开源计划-通信网】南工程通卓15级B卷-电力系统通信网期末考试
    【南工程开源计划-通信网】南工程通卓17级A卷-通信网期末考试
  • 原文地址:https://www.cnblogs.com/huicao/p/2269473.html
Copyright © 2020-2023  润新知