我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

sqlserver转制,sql进制转换

有关SQL SERVER的问题

在2005中将你要附加的数据库的兼容性级别设置为80

专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业保靖免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

EXEC sp_dbcmptlevel 'database name',80

无法将2000的还原到2005的原因可能是你的数据库中使用了在2005中被用作系统关键字的列名或表明,所以只要将该数据库的兼容性级别设置为80(2000)就可以在2005上继续使用了,但是有部分2005的新特性无法使用,比如转置表结构函数等等。

SQL排序问题

前边SELECT照常写

SELECT ...

FROM ...

WHERE ...

ORDER BY cast(reverse(substring(reverse(column),charindex('-',reverse(column) - 3),3) as int)

cast(reverse(substring(reverse(column),charindex('-',reverse(column)) - 3,3)) as int)

这个一层一层看

reverse(column) 是把字符串转置,就是从后往前写,例如'123',通过这个函数后变成'321'

转置后,根据您的字符串,只需要找到第一个横线的位置,并截取横线之前的三位并转回来即可。(原来是找最后一个横线的位置取横线后三位)

charindex('-',reverse(column) ),这个是取得转置之后第一个横线的位置

charindex('-',reverse(column)) - 3,往前推三位的位置,因为开头可能是数字,也可能事字母,所以不能从第一位开始,而是使用横线的位置往前推三位。

substring(reverse(column),charindex('-',reverse(column)) - 3,3) 这个是截取横线之前三位,即三位数字,倒序。

reverse(substring(reverse(column),charindex('-',reverse(column)) - 3,3))

这个是把三位数字在倒回来

cast(reverse(substring(reverse(column),charindex('-',reverse(column)) - 3,3)) as int)

最后使用cast函数把倒回来的三位字符串数字转成数字类型

以上的语法是使用SQLSERVER数据库的语法写的。charindex, substring都是SQLSERVER的函数。

另外,还有,看您的字符串,都是最后一个横线后边紧跟着三位数字,如果是这样的规则,这个语句可以,如果规则不定,那么这个语句就不适用了。

看了您上面的补充,这个是最终的语法:

select *

from app_member

order by cast(reverse(substring(reverse(m_uid),charindex('-',reverse(m_uid)) - 3,3)) as int)

请教一个sql语句

分组之后,使用case when 即可

select ordersid,

sum(case when product=a then num end) product_a,

sum(case when product=b then num end) product_b,

sum(case when product=c then num end) product_c

from order

group by ordersid

sql字段转换成行

这种在SQL里貌似不行的,但是你可以用EXCLE 链接数据库使用数据透视表完成,SQL有一个函数pivot 可以进行转置 但是不能实现你的表头也转置;

sql 数据转置

create table a(id int,

val varchar(10))

go

insert into a values(10001,'45.4')

insert into a values(10001,'51.81')

insert into a values(10001,'20.52')

insert into a values(10001,'64.11')

insert into a values(10001,'5.036')

go

create function f1(@id int)

returns varchar(1000)

as

begin

declare @a as varchar(1000)

set @a=''

select @a=@a+' '+val from a where id=@id

return substring(@a,2,len(@a))

end

go

select * from a

select distinct id,dbo.f1(id) from a

你把上面的代码复制过去按f5执行就可以看到结果

sqlserver数据库表转置,哪位大牛帮帮我,补充里附上脚本

select id,

case when dict_type='gender' then dict_value en as gender,

case when dict_type='city' then dict_value en as city

from table

然后再汇总一下

类似于这样


本文名称:sqlserver转制,sql进制转换
文章出自:http://mswzjz.cn/article/dsdppjd.html

其他资讯