当前位置:首页 » 编程语言 » csql转换
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

csql转换

发布时间: 2022-07-14 11:56:03

Ⅰ 关于C#与sql的数据类型之间的转换

修改一下,试下看

SqlParameter[] parameter = new SqlParameter[10];
parameter[0] = new SqlParameter("@A", Convert.ToInt32(this.A.Text.ToString()));//将string转换为int型
parameter[1] = new SqlParameter("@B", this.B.Text.ToString());
parameter[2] = new SqlParameter("@C", Convert.ToInt32(this.C.Text.ToString()));//将string转换为int型
parameter[3] = new SqlParameter("@D", this.D.Text.ToString());
parameter[4] = new SqlParameter("@E",this.E.Text.ToString());
parameter[5] = new SqlParameter("@F", this.F.Text.ToString());
parameter[6] = new SqlParameter("@G", Convert.ToDouble(his.G.Text.ToString());//将string类型转换为double型
parameter[7] = new SqlParameter("@H", null);
parameter[8] = new SqlParameter("@I", this.I.Text.ToString());
parameter[9] = new SqlParameter("@J", Convert.ToInt32(this.J.TEXT.ToString()));//将string转换为int型

Ⅱ SQL 语句中数值转换问题

像你这样表结构的,只能用表关联:

select t2.b列 as a列, t3.b列 as b列, t4.b列 as c列, t5.b列 as d列
from A表 t1, B表 t2, B表 t3, B表 t4, B表 t5
where t1.a列=t2.a列 and t1.b列=t3.a列 and t1.c列=t4.a列 and t1.d列=t5.a列

实际数据上千个。
----------------------
你是指A表有上千列?那你的表设置有问题了
如果是指B表有上千行,那上面的语句就可以了.

有没有一种函数,在select语句中直接将某列的值根据对应表进行转换?
---------------------
可以自己写一个自定义函数来实现的.

Ⅲ sql 行数据转换成多列

存储过程和临时表实现吧,代码给你了
CREATE PROCEDURE [dbo].[sp_test]
AS
BEGIN
SET NOCOUNT ON;

DECLARE @A nvarchar(50)
DECLARE @B nvarchar(200)
DECLARE @Btmp nvarchar(200)

DECLARE @charindex int

CREATE TABLE #tem
(
colA nvarchar(50) NULL,
colB nvarchar(50) NULL,
)

DECLARE curRecord CURSOR FOR
SELECT cola,colb from testtable
OPEN curRecord

FETCH NEXT FROM curRecord INTO @A,@B

WHILE @@fetch_status=0
BEGIN
SELECT @charindex=charindex(',',@B),@Btmp=@B
while (@charindex)>0
begin
insert into #tem
select @A,substring(@Btmp,1,@charindex-1)

select @Btmp=substring(@Btmp,@charindex+1,len(@Btmp))
select @charindex=charindex(',',@Btmp)
end
FETCH NEXT FROM curRecord INTO @A,@B --将游标向下移1
END

CLOSE curRecord --关闭游标
DEALLOCATE curRecord

select * from #tem

DROP TABLE #tem

END

Ⅳ SQL中字符串转换成数值

4、数据类型转换函数
函数名 操作 例 结果
ASC(S) 求第一个字符串的ASCII码 ASC("what") 87
CHR(N) 求ASCII码的字符 CHR(87) w
STR(R,L,D) 数值转换成字符,L为长度,D为小数位数 X=3.1415
STR(X,6,2) 3.14
VAL(S) 字符串转换为数值 VAL("123") 123.00
CTOD(S) 字符串转日期 CTOD('11/01/2002') 11/01/2002
DTOC(D) 日期转换成字符串 DTOC(DATE()) 11/01/2002
DTOS(D) 把日期转成年月日式的字符串 DTOS(DATE()) 20021101
CTOT(C) 字符串转成日期时间型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am
DTOT(D) 日期型转为日期时间型 DTOT(DATE()) 11/25/2001 00:00:01am
TTOC(T) 日期时间型转为字符型 TTOC(DATETIME()) 11/25/2001 00:00:01am
TTOD(T) 日期时间型转为日期型 TTOD(DATETIME()) 11/25/2001
IIF(LE,E1,E2) 逻辑判断 IIF(A>0,"YES","NO") YES

Ⅳ SQL 行列转换

行列转换等经典SQL语句

1.--行列转换

原表: 姓名 科目 成绩
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 物理 82
李四 英语 90
李四 政治 70
王五 英语 90

转换后的表: 姓名 数学 物理 英语 语文 政治
李四 0 82 90 85 70
王五 0 0 90 0 0
张三 90 85 0 80 0

实例:
create table cj --创建表cj
(
ID Int IDENTITY (1,1) not null, --创建列ID,并且每次新增一条记录就会加1
Name Varchar(50),
Subject Varchar(50),
Result Int,
primary key (ID) --定义ID为表cj的主键
);
--Truncate table cj
--Select * from cj
Insert into cj
Select '张三','语文',80 union all
Select '张三','数学',90 union all
Select '张三','物理',85 union all
Select '李四','语文',85 union all
Select '李四','物理',82 union all
Select '李四','英语',90 union all
Select '李四','政治',70 union all
Select '王五','英语',90
--行列转换
Declare @sql varchar(8000)
Set @sql = 'Select Name as 姓名'
Select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result else 0 end) ['+Subject+']'
from (select distinct Subject from cj) as cj --把所有唯一的科目的名称都列举出来
Select @sql = @sql+' from cj group by name'
Exec (@sql)

2. 行列转换--合并
原表: 班级 学号
1 1
1 2
1 3
2 1
2 2
3 1
转换后的表: 班级 学号
1 1,2,3
2 1,2
3 1

实例:
Create table ClassNo --创建表ClassNo
(
ID Int IDENTITY(1,1) not null, --创建列ID,并且每次新增一条记录就会加1
Class Varchar(50), --班级列
Number Varchar(50), --学号列
Primary Key(ID) --定义ID为表ClassNo的主键
);
--Truncate Table ClassNo
--Select * from ClassNo
Insert Into ClassNo
Select 1,1 Union all
Select 1,2 Union all
Select 1,3 Union all
Select 2,1 Union all
Select 2,2 Union all
Select 3,1

创建一个合并的函数
--Drop Function KFReturn
Create Function KFReturn(@Class Varchar(50))
Returns Varchar(8000)
as
Begin
Declare @str Varchar(8000)
Set @str = ''
Select @str = @str + cast(Number as Varchar(50)) + ',' from ClassNo Where Class = @Class
Set @str = SubString(@str,1,len(@str)-1)
Return(@str)
End

--调用自定义函数得到结果
Select Distinct Class,dbo.KFReturn(Class) From ClassNo

3:列转行
--Drop Table ColumnToRow
Create table ColumnToRow
(
ID Int IDENTITY(1,1) not null, --创建列ID,并且每次新增一条记录就会加1
a int,
b int,
c int,
d int,
e int,
f int,
g int,
h int,
Primary Key(ID) --定义ID为表ColumnToRow的主键
);
--Truncate Table ColumnToRow
--Select * from ColumnToRow
Insert Into ColumnToRow
Select 15,9,1,0,1,2,4,2 Union all
Select 22,34,44,5,6,7,8,7 Union all
Select 33,44,55,66,77,88,99,12

Declare @sql Varchar(8000)
Set @sql = ''
Select @sql = @sql + rtrim(name) + ' from ColumnToRow union all Select ' from SysColumns Where id = object_id('ColumnToRow')
Set @sql = SubString(@sql,1,len(@sql)-70)
--70的长度就是这个字符串'from ColumnToRow union all Select ID from ColumnToRow union all Select ',因为它会把ID这一列的值也算进去,所以要把它截掉
Exec ('Select ' + @sql + ' from ColumnToRow')

Ⅵ SQL语句,关于插入转换语句

两列合并?还是相加?
update b..c set filedname=convert(varchar(30),a..d.fieldname1+a..d.fieldname2) from b..c,a..d where b..c.id=a..d.id 这是相加的

update b..c set filedname=convert(varchar(30),a..d.fieldname1)+convert(varchar(30),a..d.fieldname2) from b..c,a..d where b..c.id=a..d.id 这是合并的

Ⅶ sql数据库中字段转换问题:

update 表的名字
set 某字段=substring(某字段,1,PATINDEX('%[0-9]%',某字段)-1)+cast(cast(substring(某字段,PATINDEX('%[0-9]%',某字段),LEN(某字段)) as int)+1 as varchar)
where ……(指定修改某行数据)

Ⅷ sql动态实现行列转换

题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果):
姓名 语文 数学 物理
---- ---- ---- ----
李四 74 84 94
张三 74 83 93
-------------------
*/

create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
go

--SQL SERVER 2000 静态SQL,指课程只有语文、数学、物理这三门课程。(以下同)
select 姓名 as 姓名 ,
max(case 课程 when '语文' then 分数 else 0 end) 语文,
max(case 课程 when '数学' then 分数 else 0 end) 数学,
max(case 课程 when '物理' then 分数 else 0 end) 物理
from tb
group by 姓名

--SQL SERVER 2000 动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' from tb group by 姓名'
exec(@sql)

Ⅸ SQL语句将字符串型转化为整数型的函数是什么

我关于sql函数方面的搜集资料。看了对函数你可能就会了解一些了。。。。首先楼主 写的那条语句 绝对不能执行。。应该这样写
USE 数据库名
GO
SELECT DISTINCT cuser
FROM cat
WHERE time ='' or time >'' or time <''
ORDER BY time
DESC

GO

你如果想把某列,或者某字段 的数据 由 乱七八糟的转换成大写的 用这个 函数 UPPER
用法 UPPER (某字段)

关于sql函数详解 如下:

SQL函数,详细描述如下: Avg函数 Avg函数,计算查询中某一特定字段资料的算术平均值。 语法为Avg(运算式)。运算式,可为字段名称、运算式、或一个函数,此函数可 以是一个内部或使用者定义的,但不能为其它的SQL函数。 Avg函数在计算时,不包含任何值为 Null 的资料。 Count函数 Count函数,计算符合查询条件的记录条数。 语法为Count (运算式)。运算式,可为字段名称、*、多个字段名称、运算式、 或一个函数,此函数可以是一个内部或使用者定义的,但不能为其它的SQL函数。 Count 函数于计算时,不包含任何值为 Null 的资料。 但是,Count(*) 则计算所有符合查询条件的记录条数,包含那些Null的资料。 如果Count(字段名称) 的字段名称为多个字段,将字段名称之间使用 & 分隔。 多个字段当中,至少有一个字段的值不为Null的情况下,Count函数才会计算为一条 记录。如果多个字段都为Null,则不算是一条记录。譬如: SELECT Count(价格 & 代号) From 产品 First/Last函数 First函数、Last函数,传回指定字段之中符合查询条件的第一条、最末条记录 的资料。 语法为First(运算式) 和 Last(运算式)。运算式,可为字段名称、运算式、或 一个函数,此函数可以是一个内部或使用者定义的,但不能为其它的SQL函数。 Min/Max函数 Min函数、Max函数,传回指定字段之中符合查询条件的最小值、最大值。 语法为Min(运算式) 和 Max(运算式)。运算式,可为字段名称、运算式、或一个 函数,此函数可以是一个内部或使用者定义的,但不能为其它的SQL函数。 StDev函数 StDev函数,计算指定字段之中符合查询条件的标准差。 语法为StDev(运算式)。运算式,可为字段名称、运算式、或一个函数,此函数 可以是一个内部或使用者定义的,但不能为其它的SQL函数。 如果符合查询条件的记录为两个以下时,StDev函数将传回一个Null 值,该表示 不能计算标准差。 Sum函数 Sum函数,计算指定字段之中符合查询条件的资料总和。 语法为Sum(运算式)。运算式,可为字段名称、运算式、或一个函数,此函数可 以是一个内部或使用者定义的,但不能为其它的SQL函数。 Sum函数可使用两个字段资料运算式,譬如计算产品的单价及数量字段的合计: SELECT Sum(单价 * 数量) FROM 产品 Var函数 Var函数,计算指定字段之中符合查询条件的变异数估计值。 语法为Var(运算式)。运算式,可为字段名称、运算式、或一个函数,此函数可 以是一个内部或使用者定义的,但不能为其它的SQL函数。 如果符合查询条件的记录为两个以下时,Var函数将传回一个Null 值,该表示不 能计算变异数。

Ⅹ 写sql,怎么将查询结果的行列转换呀

有意思的问题 给出一个参考的URL: 假设你表是这样的结构部件 入库日期 入库数量 A 1/1 10 A 1/1 5 A 1/2 10 B 1/5 10 其实就是两种方法,假设你的数据库是11以前的,只能先定义好查哪天到哪天 然后那么 selct 部件, sum( decode(入库日期=1号,入库数量,0), sum( decode(入库日期=2号,入库数量,0), 以此类推 from 入库表 group BY 部件(原理上就是将不是这天的变成0,再合计)要是Oracle数据库是11的话,就简单了,直接pivot搞定 pivot语法就不说了,网上一堆一堆的 ~