从19991231到 orderdate之间先查多少月

日期:2019-12-01编辑作者:北京pk10官网-数据库

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

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

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

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

DATEADD(month, DATEDIFF(month, '19991231', orderdate), '19991231') 中间是加上的月数  最后一个从什么时间开始加

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 对相应的条件进行排序

本文由北京pk赛车官网下载发布于北京pk10官网-数据库,转载请注明出处:从19991231到 orderdate之间先查多少月

关键词:

下面的见解是在使用游标的过程中做的日记

下面的见解是在使用游标的过程中做的日记。我也是第一次使用,如果有什么不对的地方请批评指正,大家一起努力...

详细>>

这些基本的数据库语言是很容易上手使用的

最近在做项目开发时用到了MySql数据库,在看了一些有关MySql的文章后,很快就上手使用了。在使用的过程中还是出现...

详细>>

但是没有找到配置的方法

介绍 以前没有太注意MySQL密码安全策略的配置方法,只是人为了将密码设为复杂密码,但是没有找到配置的方法,今...

详细>>

下面接着给大家介绍mysql 5.6密码强度插件使用

mysql 5.6对密码的强度进行了加强,推出了 validate_password插件。支持密码的强度要求。 安装办法: plugin-load=validate_pa...

详细>>