SQL积累--仅适用于SQL Server

1、sql中,字符串保存序号,按照数字顺序进行排序

 order by RIGHT(REPLICATE('',10)+CAST(householdNo AS varchar(10)),10)  asc
--householdNo 为要排序字段

2、控制小数位数

convert(varchar,convert(decimal(18,2),ROUND(Num1/Num2*100,2)))+'%'  as  XXRate

convert(varchar,convert(decimal(18,2),ROUND(Num1/Num2*100,2)))+'%'    as  XXRate ,

--- ROUND(待四舍五入小数,四舍五入位数):是四舍五入,但是并不会改变数字的长度。

--- convert():第一个convert,将四舍五入完的小数截取小数位数,通过decimal(18,2)实现控制小数位数为2

--- convert():第二个convert,将四舍五入并截取小数位数的数字转化为字符串类型,后加百分号,完成百分比显示

拓展:int型除法,要得到百分比时注意两点:①被除数不为0  ②除数先转换成浮点型。

值得注意的是:Num1应该保证是浮点数。

3、建完表不能修改问题

菜单工具栏“工具”---选项----设计器---组织保存要求重新创建表的更改,去掉选择。

4、分析器显示行号

勾选行号选项后确定,分析器中边出现了行号。

5、SQL触发器

创建某个表的触发器的SQL语句

USE Test_PMDemo
-----添加时的触发器
GO
create trigger EstimateInsert
on PM_Project --将要进行更改的表名
for insert --给表插入一条数据的时候触发
as
declare @PrjID uniqueidentifier --定义一个变量
select @PrjID = ID from inserted --把查询出的指定字段的值赋值给变量
INSERT INTO PM_Estimate(id,PrjID) VALUES(newid(),@PrjID) --插入语句

-----删除时的触发器
GO
create trigger EstimateDelete
on PM_Project --将要进行更改的表名
for delete --给表插入一条数据的时候触发
as
declare @PrjID uniqueidentifier --定义一个变量
select @PrjID = ID from deleted --把查询出的指定字段的值赋值给变量
delete from PM_Estimate where PrjID=@PrjID ----删除语句

6、SQL Server 时间字符串转换为DateTime格式

SELECT GETDATE() -------获取当前时间
SELECT CONVERT(DATETIME,'2018-06-26 09:54:30.027'); --------将时间字符串转换为DATETIME格式,

7、SQL字符串截取

  1、CHARINDEX(substr ,str):返回子串 substr 在字符串 str 中第一次出现的位置,如果字符substr在字符串str中不存在,则返回0;

  2、LEFT(str, length):从左边开始截取str,length是截取的长度;

  3、RIGHT(str, length):从右边开始截取str,length是截取的长度;

  4、SUBSTRING(str  ,n ,m):返回字符串str从第n个字符截取到第m个字符;

  5、REPLACE(str, n, m):将字符串str中的n字符替换成m字符;

  6、LEN(str):计算字符串str的长度;

  7、REVERSE(str):把字符串倒置;REVERSE("1234"); ----> 4321

  sqlserver函数大全https://wenku.baidu.com/view/e2e19dec172ded630b1cb628.html###

  实例:

SELECT ...,SGCompInfo,
      SUBSTRING(SGCompInfo,0,CHARINDEX(',' ,SGCompInfo)) SGComp,
      SUBSTRING(SGCompInfo,CHARINDEX(',' ,SGCompInfo)+1,LEN(SGCompInfo)) SGer,...
FROM ....

  执行结果:

  

8、将一个表中数据插入(insert)到另一个表中

 insert into hh (fielda,fieldb,fieldc)   select fieldx,fieldy,fieldz from mm

 9、sql字符串替换  replace函数

replace(源字符串,字符串中某个字符或字符串,要修改为哪个字段)

例:(以时间格式转为时间戳为例)

select CONVERT(varchar,GETDATE(),21) timenow1
select CONVERT(char(17),replace(replace(replace(replace(CONVERT(varchar,GETDATE(),21),'-',''),':',''),' ',''),'.',''))timenow2

执行结果:

 10、有关索引

  索引的作用

11、SQL 中字母大小写的转换

  ①将大写字母改为小写字母
    update 表名 set 字段名a= Lower(字段a)  
  ②将小写字母转化成大写字母
    update 表名 set 字段名a= upper(字段名a) 

 12、表还原(重置)

  sql几种"删除"

  truncate table 表名

---实例
truncate table WorkFlowArchives

13、日期比较

select*from Log where  datediff(DAY,WriteTime,CONVERT(datetime,'2018-10-17',101))<0

14、行转列、列转行

https://blog.csdn.net/qq_39774060/article/details/80618094

--- 持续更新中---

* SQL Server 日期格式化输出

最常用格式

SELECT CONVERT(VARCHAR(100), GETDATE(), 111)   结果:2010/03/06

SELECT CONVERT(VARCHAR(100), GETDATE(), 23)    结果:2010-03-06

T-SQL Script Output format
   
SELECT CONVERT(VARCHAR(100), GETDATE(), 0) 03  6 2010  4:19PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 1) 03/06/10
SELECT CONVERT(VARCHAR(100), GETDATE(), 2) 10.03.06
SELECT CONVERT(VARCHAR(100), GETDATE(), 3) 06/03/10
SELECT CONVERT(VARCHAR(100), GETDATE(), 4) 06.03.10
SELECT CONVERT(VARCHAR(100), GETDATE(), 5) 06-03-10
SELECT CONVERT(VARCHAR(100), GETDATE(), 6) 06 03 10
SELECT CONVERT(VARCHAR(100), GETDATE(), 7) 03 06, 10
SELECT CONVERT(VARCHAR(100), GETDATE(), 8) 16:23:28
SELECT CONVERT(VARCHAR(100), GETDATE(), 9) 03  6 2010  4:23:40:110PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 10) 03-06-10
SELECT CONVERT(VARCHAR(100), GETDATE(), 11) 10/03/06
SELECT CONVERT(VARCHAR(100), GETDATE(), 12) 100306
SELECT CONVERT(VARCHAR(100), GETDATE(), 13) 06 03 2010 16:24:39:763
SELECT CONVERT(VARCHAR(100), GETDATE(), 14) 16:24:50:823
SELECT CONVERT(VARCHAR(100), GETDATE(), 20) 2010-03-06 16:25:04
SELECT CONVERT(VARCHAR(100), GETDATE(), 21) 2010-03-06 16:25:18.107
SELECT CONVERT(VARCHAR(100), GETDATE(), 22) 03/06/10  4:25:27 PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 23) 2010-03-06
SELECT CONVERT(VARCHAR(100), GETDATE(), 24) 16:26:48
SELECT CONVERT(VARCHAR(100), GETDATE(), 25) 2010-03-06 16:26:55.810
SELECT CONVERT(VARCHAR(100), GETDATE(), 100) 03  6 2010  4:27PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 101) 03/06/2010
SELECT CONVERT(VARCHAR(100), GETDATE(), 102) 2010.03.06
SELECT CONVERT(VARCHAR(100), GETDATE(), 103) 06/03/2010
SELECT CONVERT(VARCHAR(100), GETDATE(), 104) 06.03.2010
SELECT CONVERT(VARCHAR(100), GETDATE(), 105) 06-03-2010
SELECT CONVERT(VARCHAR(100), GETDATE(), 106) 06 03 2010
SELECT CONVERT(VARCHAR(100), GETDATE(), 107) 03 06, 2010
SELECT CONVERT(VARCHAR(100), GETDATE(), 108) 16:28:25
SELECT CONVERT(VARCHAR(100), GETDATE(), 109) 03  6 2010  4:28:35:123PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 110) 03-06-2010
SELECT CONVERT(VARCHAR(100), GETDATE(), 111) 2010/03/06
SELECT CONVERT(VARCHAR(100), GETDATE(), 112) 20100306
SELECT CONVERT(VARCHAR(100), GETDATE(), 113) 06 03 2010 16:29:25:217
SELECT CONVERT(VARCHAR(100), GETDATE(), 114) 16:29:32:543
SELECT CONVERT(VARCHAR(100), GETDATE(), 120) 2010-03-06 16:29:44
SELECT CONVERT(VARCHAR(100), GETDATE(), 121) 2010-03-06 16:29:51.030
SELECT CONVERT(VARCHAR(100), GETDATE(), 126) 2010-03-06T16:29:59.327
SELECT CONVERT(VARCHAR(100), GETDATE(), 130) 21 ???? ????? 1431  4:30:06:780PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 131) 21/03/1431  4:30:21:990PM
   

SQL常见问题积累的更多相关文章

  1. 连接SQL常见问题

    HTTP Status 500 – Internal Server Error Type Exception Report Message Request processing failed; nes ...

  2. sql 的积累

    sql的积累 By:山高似水深 原创 转载注明出处 .REVERSE() 反转 例如: Hive 可用 2016年12月3日11:31:59 2.instr(str,'.')位置 结果:得出在str中 ...

  3. git指令总结及常见问题积累与解决方案

    git指令总结及常见问题积累与解决方案 git初始化一个项目并且长传到服务器后端步骤: 1.本地文件操作 通过:git init初始化化一个项目  会出现一个隐藏文件 ,可以文件夹属性设置进行查看,此 ...

  4. SQL的积累

    SQL的积累学习(不常用的经常会忘记,所以以后用到的就会记在下面): --新增字段alter table t_Student add Test varchar(200)--删除字段alter tabl ...

  5. SQL Server 积累

    2016-11-24 sql语句修改某表某字段的数据类型和字段长度: 问题是在修改老功能中暴露出来的,我修改了图片上传功能,结果报图片路径超出数据库字段规定长度,我检查数据库后发现之前设计数据库的人将 ...

  6. Sql 常见问题

    join on and vs join on where SELECT * FROM Orders LEFT JOIN OrderLines ON OrderLines.OrderID=Orders. ...

  7. sql语句积累

    有一个需求表(demand),每一记录就是一条需求:另外有一个报价表(quotation),每一条记录是对需求记录的报价详情. 需求表: 报价表: 我现在想得到每条需求的信息以及有多少人报价了,我们可 ...

  8. SQL面试积累

    以下题目都在MySQL上测试可行,有疏漏或有更优化的解决方法的话欢迎大家提出,我会持续更新的:) 有三个表,如果学生缺考,那么在成绩表中就不存在这个学生的这门课程成绩的记录,写一段SQL语句,检索出每 ...

  9. 有用的sql语句积累

    ⑴.  sql查询未被外键关联的数据 select * from bb b where not exists (select 1 from aa a where a.bid=b.bid)

随机推荐

  1. zabbix全网监控

    为什么要监控 运维的职责1.保障企业数据的安全可靠.2.为客户提供7*24小时服务.3.不断提升用户的体验. 在关键时刻,提前提醒我们服务器要出问题了 当出问题之后,可以便于找到问题的根源 拿到公司服 ...

  2. UVA1616-Caravan Robbers(枚举)

    Problem UVA1616-Caravan Robbers Accept: 160  Submit: 1156Time Limit: 3000 mSec Problem Description O ...

  3. 洛谷P1127-词链

    Problem 洛谷P1127-词链 Accept: 256    Submit: 1.3kTime Limit: 1000 mSec    Memory Limit : 128MB Problem ...

  4. [ZJOI2012]灾难

    嘟嘟嘟 偶尔翻到的一道题. 50分暴力很好想,对于每一个点进行一次拓扑排序,然后每一次别memset,只清空走过的点,能拿到70分. 正解好像也挺好想,是一个叫"灭绝树"的东西. ...

  5. P2080 增进感情(背包DP)

    思路:将好感度x+y作为体积, 幸福度x-y作为作为价值, 然后就是一个经典的背包问题了.emmmmm,还可以特判一下,因为幸福度为0时就是最小了,没有必要看后面的了吧. 其实,我自己做的时候,沙雕的 ...

  6. Python:Day21

    序列化 我们把对象(变量)从内存中变成可存储或可传输的过程称之为序列化 json模块

  7. 应对WannaCry勒索危机之关闭445端口等危险端口——以本人Windows7系统为例

    应对WannaCry勒索危机之关闭445端口等危险端口--以本人Windows7系统为例 近日,全球范围内爆发WannaCry勒索病毒危机 我国很多大学纷纷中招.受灾严重,甚至连刘老师的电脑也-- 拿 ...

  8. Mac OS 安装Wget

    没有Wget的日子是非常难过的,强大的Mac OS 下安装Wget非常简单 下载一个Wget的源码包,http://www.gnu.org/software/wget/ 安装与配置 1. 首先下载一个 ...

  9. eclipse导入maven项目,资源文件位置显示不正确

    eclipse导入maven项目后,资源文件位置显示不正确,如下图所示 解决方法: 在resources上右键Build Path,选择Use as Source Folder即可正确显示资源文件

  10. Java读写文件,字符输入流FileReader 和 字符输出流FileWriter

    一个流被定义为一个数据序列.输入流用于从源文件读取数据,输出流用于向目标写数据. 字符输入流FileReader三种读文件方式 package com.shuzf.fileio; import jav ...