zoukankan      html  css  js  c++  java
  • EXISTS/NOT EXISTS CASE WHEN等使用方法

    --简单判断用法
    SELECT 1 WHERE EXISTS (SELECT * FROM cpay..System_Setting)
    --可以替换count
    SELECT COUNT(1) FROM cpay..System_Setting
    USE YSB_PayDB
    --1 练习NOT EXISTS的用法
    --(Exists使用心得:1、先查目标表的全部;2、再用Exists关联目标表过滤掉不要的)
    SELECT c.* FROM dbo.YSB_Distributor AS d 
    INNER JOIN dbo.YSB_CustomerInfo AS c
    ON d.DistributorID = c.DistributorID
    WHERE d.DistributorName='tests'
    AND NOT EXISTS (
    SELECT 1 FROM dbo.YSB_DistributorCustomerServiceFee AS s 
    WHERE c.CustomerNo = s.CustomerNo
    )
    
    --2 练习NOT EXISTS
    SELECT * FROM dbo.YSB_PayProductInfo AS p
    WHERE NOT EXISTS (
    SELECT 1 FROM dbo.YSB_PayProductSupportBusProduct AS s
    WHERE p.PayProductCode = s.PayProductCode AND s.BusProductCode = 'UATP'
    )
    
    --3 练习NOT EXISTS的用法
    SELECT * FROM dbo.Sys_Company
    SELECT * FROM dbo.YSB_CustomerInfo
    SELECT * FROM dbo.YSB_CustomerAndFactoringCompanyRelation
    
    SELECT * FROM dbo.YSB_CustomerInfo AS c
    WHERE NOT EXISTS  (
    SELECT 1 FROM dbo.YSB_CustomerAndFactoringCompanyRelation AS f
    INNER JOIN dbo.Sys_Company AS s
    ON f.FactoringCompanyID = s.CompanyID
    WHERE s.CompanyName = '北京海淀科技企业融资担保有限公司' AND c.CustomerNo = f.CustomerNo
    )
    
    --4 练习 CASE WHEN的用法
    USE MySchool
    SELECT * FROM dbo.tblScore
    SELECT * FROM dbo.tblCourse
    SELECT * FROM dbo.tblStudent
    SELECT * FROM dbo.tblTeacher
    
    SELECT st.StuId,st.StuName,co.CourseName,sc.Score ,
    CASE 
        WHEN sc.Score >= 90 THEN '优秀'
        WHEN sc.Score >= 80 THEN '良好'
        WHEN sc.Score >= 60 THEN '及格'
        WHEN sc.Score < 60 THEN '不及格'
        ELSE '其他'
    END AS '成绩',
    CASE st.StuSex
        WHEN '' THEN '男生'
        WHEN '' THEN '女生'
        ELSE '其他'
    END AS 性别
    FROM dbo.tblStudent AS st
    INNER JOIN dbo.tblScore AS sc
    ON st.StuId = sc.StuId
    INNER JOIN dbo.tblCourse AS  co
    ON co.CourseId = sc.CourseId
    
    --5 练习CASW WHEN GROUP BY的用法
    --(此写法类似Switch...Case...)
    SELECT b.BusProductCode, b.BusProductName,
    CASE b.BusProductType
        WHEN 1 THEN '机票类'
        WHEN 2 THEN '平台类'
        WHEN 3 THEN '票务类'
    END
    FROM YSB_PayDB.dbo.YSB_BusProductInfo AS b
    --(此写法类似If...Else...)
    SELECT b.BusProductCode, b.BusProductName,
    CASE 
        WHEN b.BusProductType = 1 THEN '机票类'
        WHEN b.BusProductType = 2 THEN '平台类'
        WHEN b.BusProductType = 3 THEN '票务类'
    END
    FROM YSB_PayDB.dbo.YSB_BusProductInfo AS b
    
    SELECT 
    CASE BusProductType
        WHEN 1 THEN '机票类'
        WHEN 2 THEN '平台类'
        WHEN 3 THEN '票务类'
    END AS 业务类型,
    COUNT(1) AS 产品数量
    FROM YSB_PayDB.dbo.YSB_BusProductInfo
    GROUP BY BusProductType
  • 相关阅读:
    SPS安装过程中配置服务器场帐户设置页面不能正常显示以及IIS中SPS管理站点未配置成功问题的原因
    Outlook中时间的自然语言支持
    hashtable与HashMap区别
    IE浏览器Encoding Autoselect,UTF8编码的中文页面白屏
    ASP.NET中Web DataGrid的使用指南
    HTML+CSS模拟的Tab控件
    DIV+CSS定位之相对定位与绝对定位
    javascript中apply方法
    Windows工作流基类库(WF)探密
    中国居民身份证号码验证
  • 原文地址:https://www.cnblogs.com/taiyonghai/p/5806260.html
Copyright © 2011-2022 走看看