T-SQL:基础练习(杂)

来源:http://www.mnuet.com 作者:产品分类 人气:171 发布时间:2019-10-15
摘要:1.重返 每月最后一天订单 SELECT orderid, orderdate, custid, empidFROM Sales.OrdersWHERE orderdate = EOMONTH(orderdate);  使用EMONTH 对输入的日子重回月末日期   类似动态条件 DATEDIFF(month, '19991231', orderdat

1.重返 每月最后一天订单

SELECT orderid, orderdate, custid, empid
FROM Sales.Orders
WHERE orderdate = EOMONTH(orderdate);

 使用EMONTH 对输入的日子重回月末日期   类似动态条件

DATEDIFF(month, '19991231', orderdate)  相差多少月  从一九九六1231到 orderdate之间先查多少月

DATEADD(month, DATEDIFF(month, '一九九八1231', orderdate), '19981231') 中间是加多的月数  最终三个从如什么日期间开首加

SELECT orderid, orderdate, custid, empid
FROM Sales.Orders
WHERE orderdate = DATEADD(month, DATEDIFF(month, '19991231', orderdate), '19991231');

三种写法  记住 能够用动态条件 区分记录

 

  1. 姓氏a上有同样的 

    SELECT empid, firstname, lastname FROM HR.Employees WHERE lastname LIKE '%a%a%';

3.对各样顾客的订单日期排序

SELECT custid, orderdate, orderid,
  ROW_NUMBER() OVER(PARTITION BY custid ORDER BY orderdate, orderid) AS rownum
FROM Sales.Orders
ORDER BY custid, rownum;

4.法则筛选case

SELECT empid, firstname, lastname, titleofcourtesy,
  CASE titleofcourtesy
    WHEN 'Ms.'  THEN 'Female'
    WHEN 'Mrs.' THEN 'Female'
    WHEN 'Mr.'  THEN 'Male'
    ELSE             'Unknown'
  END AS gender
FROM HR.Employees;

SELECT empid, firstname, lastname, titleofcourtesy,
CASE 
WHEN titleofcourtesy IN('Ms.', 'Mrs.') THEN 'Female'
WHEN titleofcourtesy = 'Mr.' THEN 'Male'
ELSE 'Unknown'
END AS gender
FROM HR.Employees;

首先种 是指向寻找  固定的对准  第三种未有能够多字段条件

5.在order by 加范围排序条件

SELECT custid, region
FROM Sales.Customers
ORDER BY
  CASE WHEN region IS NULL THEN 1 ELSE 0 END, region;

四个标准化 0,1 暗许排序法规 通过int 对相应的标准化进行排序

本文由广东十一选五一定牛发布于产品分类,转载请注明出处:T-SQL:基础练习(杂)

关键词:

上一篇:没有了

下一篇:没有了

频道精选

最火资讯