SQL常见问题积累

SQL积累

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


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

2、控制小数位数

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

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

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

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

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

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     ----删除语句

---持续更新中---

* SQL Server 日期格式化输出

---------------------------------

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
   

猜你喜欢

转载自www.cnblogs.com/dyhao/p/9213824.html