select Convert ( varchar , Convert ( money ,TaxExValue), 1 ) from A -- Result 2 , 794.87 58 , 119.66 1 , 367.52
对于SQL Server来说,进行金额的转换,可以按照上面的操作那样,会自动将金额处理为两位小数,并用逗号分隔小数点前面的数字。
当然可以用字符串拼接的方式,将金额符号加上去。
对于项目中,客户需要将金额转换的时候,这样处理显示出来的效果会好一些。
一下是用ORACLE的显示结果。
Select to_char(hisal, ' L9,999 ' ) as Value from SALGRADE -- result ¥ 1 , 200 ¥ 1 , 400 ¥ 2 , 000 ¥ 3 , 000 ¥ 9 , 999
-- Decode()函数
//SQL Server 下,用case 实现
select case ' 2 ' when ' 1 ' then ' 内容1 ' when ' 2 ' then ' 内容2 ' when ' 3 ' then ' 内容3 ' End Union all select case ' 4 ' when ' 1 ' then ' 内容1 ' when ' 2 ' then ' 内容2 ' when ' 3 ' then ' 内容3 ' End -- Result 内容2 NULL
//Oracle 下,Decode和Case都可以
select Decode( ' 2 ' , ' 1 ' , ' 内容1 ' , ' 2 ' , ' 内容2 ' , ' 3 ' , ' 内容3 ' ) from dual Union all select case ' 2 ' when ' 1 ' then ' 内容1 ' when ' 2 ' then ' 内容2 ' when ' 3 ' then ' 内容3 ' End from dual Union all select Decode( ' 4 ' , ' 1 ' , ' 内容1 ' , ' 2 ' , ' 内容2 ' , ' 3 ' , ' 内容3 ' ) from dual Union all select case ' 4 ' when ' 1 ' then ' 内容1 ' when ' 2 ' then ' 内容2 ' when ' 3 ' then ' 内容3 ' End from dual; -- Result 内容2 内容2
Oracle后面两个SQL执行出来的结果不是NULL而是''
外键约束。
删除时同时删除子表数据
Oracle测试用例
1 ORACLE 的测试用例 2 1 drop table Materials 3 2 / 4 3 Create table Materials 5 4 ( 6 5 MaterialID varchar2 ( 30 ), 7 6 MaterialCode varchar2 ( 255 ), 8 7 MaterialName varchar2 ( 255 ), 9 8 Specs varchar2 ( 255 ), 10 9 UnitID varchar2 ( 30 ), 11 10 constraint PK_Materials primary key (MaterialID) 12 11 ) 13 12 / 14 13 drop table MaterialComLinks 15 14 / 16 15 Create table MaterialComLinks 17 16 ( 18 17 CompanyID varchar2 ( 30 ), 19 18 MaterialID varchar2 ( 30 ), 20 19 IMUnitID varchar2 ( 30 ), 21 20 PUUnitID varchar2 ( 30 ), 22 21 constraint PK_MaterialComLinks primary key (CompanyID,MaterialID), 23 22 constraint fk_MaterialComLinks foreign key (MaterialID) references Materials(Materialid) on delete cascade 24 23 ) 25 24 / 26 25 27 26 Insert into Materials (MaterialID,MateiralCode,MaterialName,Specs,UnitID) 28 27 values ( ' 0001 ' , ' 010101 ' , ' 测试物料1 ' , ' 规格型号 ' , ' 计量单位 ' ) 29 28 / 30 29 Insert into Materials (MaterialID,MateiralCode,MaterialName,Specs,UnitID) 31 30 values ( ' 0002 ' , ' 010102 ' , ' 测试物料2 ' , ' 规格型号2 ' , ' 计量单位2 ' ) 32 31 / 33 32 Insert into MaterialComlinks (CompanyID,MaterialID,IMUnitID,PUUnitID) 34 33 values ( ' 01 ' , ' 0001 ' , ' 库存计量单位1 ' , ' 采购计量单位1 ' ) 35 34 / 36 35 Insert into MaterialComlinks (CompanyID,MaterialID,IMUnitID,PUUnitID) 37 36 values ( ' 01 ' , ' 0002 ' , ' 库存计量单位2 ' , ' 采购计量单位2 ' ) 38 37 / 39 38 Insert into MaterialComlinks (CompanyID,MaterialID,IMUnitID,PUUnitID) 40 39 values ( ' 02 ' , ' 0002 ' , ' 库存计量单位3 ' , ' 采购计量单位3 ' )
上两个建表语句分别为创建
集团物料字典表,和公司物料表。
并预制了集团物料两条数据和公司物料两条数据
结果
select * from Materials ; Select * from MaterialComlinks -- Result1 0001 010101 测试物料1 规格型号 计量单位 0002 010102 测试物料2 规格型号2 计量单位2 -- Result2 01 0001 库存计量单位1 采购计量单位1 01 0002 库存计量单位2 采购计量单位2 02 0002 库存计量单位3 采购计量单位3
当在集团物料中删除对应物料信息时,自动删除公司物料下的对应数据。
View Code
delete from Materials where MaterialID = ' 0001 ' select * from Materialcomlinks -- Reuslt 01 0002 库存计量单位2 采购计量单位2 02 0002 库存计量单位3 采购计量单位3