用SQL查询分析器查询时怎么把一个字段用“|”分割成多个?

全文如题 告诉我代码 简单的就行 不要废话的

一般来讲都是从程序读取出来数据后在进行分割。
如果你非要从数据库查询出来就分割好,在sql server下只能去写split函数
if object_id(’f_split’) is not null

drop function f_split

go

create function f_split(@aString varchar(8000),@pattern varchar(10))

returns @temp table(a varchar(100))

--实现split功能 的函数

--说明:@aString,字符串,如a:b:c;@pattern,分隔标志,如 :

as

begin

declare @i int

set @aString=rtrim(ltrim(@aString))

set @i=charindex(@pattern,@aString)

while @i>=1

begin

insert @temp values(left(@aString,@i-1))

set @aString=substring(@aString,@i+1,len(@aString)-@i)

set @i=charindex(@pattern,@aString)

end

if @aString<>’’

insert @temp values(@aString)

return

end

--在下上述代码,然后就可以用了,例子:

select * from dbo.f_split(’0|418001|418002|418002’,’|’)
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-04
SELECT
(CASE WHEN CHARINDEX('|',[字段]) > 0 THEN
SUBSTRING([字段],1,CHARINDEX('|',[字段)-1)
ELSE ''
END) AS [字段1],
(CASE WHEN CHARINDEX('|',[字段]) > 0 THEN
SUBSTRING([字段],CHARINDEX('|',[字段)+1,LEN([字段])-CHARINDEX('|',[字段])+1)
ELSE ''
END) AS [字段2]
FROM [Table]
第2个回答  2009-06-04
什么叫废话?
那就答:不会

用SQL查询分析器查询时怎么把一个字段用“|”分割成多个?
一般来讲都是从程序读取出来数据后在进行分割。如果你非要从数据库查询出来就分割好,在sql server下只能去写split函数 if object_id(’f_split’) is not null drop function f_split go create function f_split(@aString varchar(8000),@pattern varchar(10))returns @temp table(a varchar(100...

sql 把一个字段分成多个字段
1、第一步,新的PHP文件,见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,需要声明数组变量,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,使用函数将阵列连接到带有连接字符的字符串,见下图,转到下面的步骤。4、第四步,执行完上面的操作之后,输出连接的字符串,见下图...

sql 把一个字段分成多个字段
select a, dbo.split(b,'-',1) as b1, dbo.split(b,'-',2) as b2, dbo.split(b,'-',3) as b3, c from t_fengchujun在执行上面的语句前,需要先创建一个字符串函数代码如下,在查询分析器执行create function dbo.split(@srcstr varchar(4000),@space varchar(50),@showindex int)returns varcha...

SQL中的Group By的查询过程多列分组的查询过程是怎样的?
如果指定了ALL,将对组中不满足搜索条件的汇总列返回空值。不能用CUBE或ROLLUP运算符指定ALL。如果访问远程表的查询中有WHERE子句,则不支持Group By ALL操作。\\r\\n \\r\\n Group_By_expression:对其执行分组的表达式。Group_By_expression也称为分组列。Group_By_expression可以是列或引用列的非聚合表...

超难的Sql查询(纵向转横向+分组统计)
函数脚本(如果表结构一致,直接复制到查询分析器即可执行):alter FUNCTION getcol (@spbh int)RETURNS varchar(8000)AS BEGIN declare @f1 varchar(100),@result varchar(1000),@deli char(1)set @deli=','set @result=''DECLARE ddcursor CURSOR for select 销售单号 from 表名 where 商品...

sql中如何去掉一条记录?
sql中去掉一条记录的步骤如下:我们需要准备的材料分别是:电脑、sql查询器。1、首先,打开sql查询器,连接上相应的数据库表,例如test3表。2、点击“查询”按钮,输入:select A1, A2 from test3 group by A1; 。3、点击“运行”按钮,此时查询出的A1列只显示1个1。

SQL 怎么批量修改数据表内容
先去空白再替换。如果那个空白是空格就好办,用函数rtrim,ltrim去空格,如果不是空格你把sql里的数据粘贴到记事本里,然后再sql的查询分析器里输入select ascii(' 那个空白字符')得到这个空白的ascii码,接着update表名 set 字段名=replace(字段名,char(刚才得到ascii码),'')把空白都去掉之后用你那个...

如何取得一个表的所有字段名用逗号分割(SQLSERVER和ORACLE)求解答_百度...
(select COLUMN_NAME,column_id from user_tab_columns where table_name='&表名')start with column_id=1 connect by column_id=rownum;从这点上讲Oracle比SQLSERVER取字段要麻烦多了 在SQLSERVER里可以直接在SQL的查询分析器中直接选中表右击选select就可以自动生成表的所有字段名用逗号分割 ...

怎么用T-SQl来修改资料库表中列的名称,即把一个原有的列名改为新的列 ...
怎么用java查资料库中表的列名 把tableName换成你的表名,有些资料库也可以直接使用Sql查询表列名 ResultSet resultSet = statement.executeQuery("select * from tableName"); ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); for(int i=0; i<resultSetMetaData.getColumn...

在sql中的查询分析器中用一条语句删除库中所有表中的所有数据
delete 表名 where 1=1

相似回答