请问在SQL里面,一个字段类型是字符串,里面存的都是像“3×10”的,请问怎样都能把这个“3×10”拆掉,变成一个真正的“3乘10”计算表达式。有没有函数可以直接做到这一点?
解决方案 »
- AjaxPro未定义,帮帮忙!
- aspx和ascx页之间的传递值的实现?
- asp.net怎么判断操作系统是简体还是繁体?
- asp.net中提示DataReader未关闭,可以我的项目中从未使用过DataReader
- 奇怪的公有变量问题,大家帮帮记!急!在钱等!
- dns的问题
- 关于对数据库的操作
- 关于两个fileUpload控件同时上传
- 请问如何将自定义的类(只有属性的类)的对象赋值给DataGrid 的 DataSource属性吗?
- Datagrid中每页显示8行,不足8行,余下用空行补充,如何实现?在线给分!
- 请教从数据库读取的字段在DataGrid中的列中保持分段的解决方法
- 像英语四、六级那样的阅读理解题,编程时,题目类应该怎么设计?
不过可以用substring()函数把它拆开!
让你参考:
string Email= "[email protected]";
string [] strs = temp.Split('@');
获得@前面的 = strs[0];//这里
string [] strs = Email.Split('@');
获得@前面的 = strs[0];//这里应该是这样,写错了,不好意思:(
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_split]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_split]
GOif exists (select * from dbo.sysobjects where id = object_id(N'[序数表]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [序数表]
GO--为了效率,所以要一个辅助表配合
select top 8000 id=identity(int,1,1) into 序数表
from syscolumns a,syscolumns b
alter table 序数表 add constraint pk_id_序数表 primary key(id)
go/*--字符串分函数 分拆指定分隔符的的字符串,返回结果表--邹建 2004.04(引用请保留此信息)--*//*--调用示例 select * from f_split('考号kaohao 科目kemu 学期xueqi',' ')
--*/
create function f_split(
@str varchar(8000), --要分拆的字符串
@splitchar varchar(10) --分隔符
)returns table
as
return(
select re=substring(@str,id,charindex(@splitchar,@str+@splitchar,id)-id)
from 序数表
where id<=len(@str)+1 and charindex(@splitchar,@splitchar+@str,id)-id=0
)
go
declare @expression nvarchar(500) -- 计算表式
declare @stmt nvarchar(500) -- 执行语句set @stmt = 'select @result = '
set @expression = '3×10'-- 把 × 替换成 *, 因为在程序中不认 ×
set @expression = replace(@expression, '×', '*')-- 和 @stmt 连接起来,组成一个实际的 SQL 语句
set @stmt = @stmt + @expressionexec sp_executesql @stmt, N'@result int out', @result outprint(@result)