网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.使用SQL Server 2005中的CLR集成.
.将XML文件导入SQL Server 2000.
.SQL Server2008数据库引擎功能的.
.利用自定义分页技术提高数据库性.
.恢复误删数据(SQL Server 2000).
.金额阿拉伯数字转换为中文的自定.
.SQL Server 2005代理服务应用软件.
.SQL Server数据库占用过多内存的.
.sql server 2000中循环插入100万.
.SQL Server安装文件挂起错误解决.
.讲解SQL Server线程和纤程的管理.
.对系统默认的约束名和索引名进行.
.一次特殊的SQL Server安装奇遇.
.监测你的SQL SERVER--让瓶颈暴露.
.将Sql Server自增长字段的目前识.
.在无法增强硬件配置的情况下对性.
.使用用于SQL Server的IIS虚拟目录.
.利用数据库日志恢复数据到时间点.
.经常用到的交叉表问题,一般用动态.
.临时表在特定的条件下同样可以灵.

把二进制的字段以字符串形式Select出来

发表日期:2008-3-20


首先我们以一个Table为例,某个字段为二进制形式(binary),在查询管理器中Select出来就是形如”0x0A1F8697FF0000000000”,问题是存储过程不能返回二进制字段,不知道有什么办法可以Select出来变为“0A1F8697FF00”这样一个字符串呢?下文中介绍的这个字段以FF00为结束,FF00后面的字符忽略。

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

select cast(left(0x0A1F8697FF0000000000,charindex
(0xFF00,0x0A1F8697FF0000000000)) as varbinary(8000)) as str

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

CREATE TABLE TEST6(A binary(50)) --DROP TABLE TEST6
INSERT TEST6 SELECT 0x0A1F8697FF0000000000
select cast(left(A,charindex(0xFF00,A)) as varbinary(8000)) as str from test6

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

declare @bin varbinary(1000)
declare @result varchar(1000)
set @bin = 0x0A1F8697FF0000000000
EXEC master.dbo.xp_varbintohexstr @bin, @result output
----去掉字符串前面的'0x'字符
set @result = stuff(@result,1,2,'')
----去掉最后的FF00后面的字符(当有多个FF00时只从最后一个FF00截取)
select reverse(substring(reverse(@result),charindex(reverse('FF00'),
reverse(@result)),len(@result)- charindex(reverse('FF00'),reverse(@result))+1))

/*结果
0A1F8697FF00
*/
上一篇:SQL Server数据库文件恢复及数据库置疑 人气:1251
下一篇:深入讲解阻塞现象的产生原因及处理方法 人气:1078
浏览全部SQL Server的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐