SQL行转列代码
1. SQL行转列代码
-
-
表里面有这么一组数据:
code price
'MCU0-3' 15
'MCU0-3' 20
'MCU0-3' 22
'MCU3-15' 17
'MCU3-15' 16
'MCU3-15' -10
'MCU3-15' 50
'MCU3-27' 99
'MCU3-27' 96
'MCU3-27' 54
'MCU3-27' 14
'MCU3-27' 46
'MCU3-27' 86
现在需要得到这样的结果:
MCU0-3 MCU3-15 MCU3-27
15 17 99
20 16 96
22 -10 54
null 50 14
null null 46
null null 86
SQL语句是这样写的:
SELECT ID = IDENTITY(INT, 1, 1), price into #T1 from [table] where code = 'MCU0-3'
SELECT ID = IDENTITY(INT, 1, 1), price into #T2 from [table] where code = 'MCU3-15'
SELECT ID = IDENTITY(INT, 1, 1), price into #T3 from [table]
相关文档:
1. 创建触发器, 在mssql下的触发器的使用:Db->表->选择表名->所有任务(右键)->管理触发器
2. 当表被更新\插入\删除后,都可以通过定义触发器来响应该事件,从而进行相应的处理! 如一个学生转系了,其学号被更换了,他所借的图书对应的学号也相应需要改动,这个我们可以只通过update其学号,和学号相关联的表由触发器 ......
1.在mssql创建存储过程,在db->存储过程->新建存储过程(右键)
CREATE PROCEDURE user_logon_check @username varchar(45),@userpsw varchar(45)
AS
select * from users where UserName = @username and PasswordCode = @userpsw
return 10
GO
2.在mysql创建存储过程,使用Mysql Query Browser,在db->表 ......
实例1:只返回单一记录集的存储过程。
银行存款表(bankMoney)的内容如下
Id
userID
Sex
Money
001
Zhangsan
男
30
002
Wangwu
男
50
003
Zhangsan
男
40
要求1:查询表bankMoney的内容的存储过程
create procedure sp_query_bankMoney
as
select * from bankMoney
go
exec sp_query_bankMoney
注 ......
ALTER function [dbo].[split]
(
@SourceSql varchar(8000),
@StrSeprate varchar(10)
)
returns @temp table(F1 varchar(100))
as
begin
declare @i int
set @SourceSql = rtrim(ltrim(@SourceSql))
set @i = charindex(@StrSeprate,@SourceSql)
while @i >= 1
begin
if len( ......