2016.6.3类型强制转换,连接,生成数字表,子查询

Posted 刁民923

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016.6.3类型强制转换,连接,生成数字表,子查询相关的知识,希望对你有一定的参考价值。

--日期问题
select *
from orders
where OrderDate > ‘20030525‘--字符串表示日期

--cast  强制转换
select *
from orders
where OrderDate >cast( ‘20030525‘ as datetime)

--datepart 取日期中的一部分
select getdate()--计算机当前的时间

select getdate(),
    datepart(year,getdate()),
    datepart(month,getdate()),
    datepart(day,getdate()),
    datepart(hour,getdate())

--特殊
select datepart(dayofyear,getdate()),--从年初到现在的天数
    datepart(weekday,getdate()),--星期几,从星期天开始为1
    datepart(week,getdate())--今年的第几周

--日期的加减
--单位
select getdate(),dateadd(month,2,getdate()),
  dateadd(week,3,getdate())
--减法
select datediff(year,‘19491001‘,getdate())

--cast和convert函数
--类型转换
select getdate(),convert(nvarchar,getdate(),112)
  
select convert(int,‘99‘)+ 100
select cast(‘99‘ as int)+ 100

--联合查询
--cross join

--做一个没有什么意义的交叉连接
select CityName ,OrderNum
from city cross join orders

--内连接,必须符合特定条件的组合
select OrderNum ,ProdNum ,DistriNum
from orders inner join products
 on orders.OrderNum =products.ProdNum

--生成数字表
use tempdb
create table digits
(
 digit int
 );

select *
from digits;

--插入10条记录
insert into digits (digit)
values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);

--生成数字
select d1.digit,d2.digit,d3.digit*100+d1.digit * 10 + d2.digit
from digits d1 cross join digits d2 cross join digits d3

use [C:\USERS\LENOVO\DOCUMENTS\EXAM_SQLBAK_DATA.MDF]

--子查询,嵌在其他查询中的查询叫子查询,用括号括起来
select max(DistriNum)
from distributors

select BossName,DistriNum,CityCode
from distributors
where CityCode =
 (
  select CityCode
  from distributors
  where DistriNum =
   (
    select max(DistriNum )
    from distributors
   )
 )
order by DistriNum desc

--独立子查询

--相关子查询
select DistriNum ,BossName ,CityCode,
 (
  select count(*)
  from distributors.CityCode
  where distributors .CityCode.CityCode =distributors .CityCode 
 )
from distributors

--3.9
--多值子查询
select OrderNum ,PaidDate
from orders
where  PaidDate  in
 (
  select PaidDate
  from orders
 )

 

以上是关于2016.6.3类型强制转换,连接,生成数字表,子查询的主要内容,如果未能解决你的问题,请参考以下文章

为啥 JavaScript 在连接时优先强制转换为字符串,而在比较时优先转换为数字?

强制数据类型转换之布尔类型和其他进制的数字

强制类型转换 字符串和数字互相怎么转换

C# LINQ 生成“指定的强制转换无效”错误

mysql数据类型转换

强制类型转换和隐式类型转换