用SQL查询分析器查询时怎么把一个字段用“”分割成多个?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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’,’|’) 参考技术A 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] 参考技术B 什么叫废话?
那就答:不会
用sql怎么更新指定数量的记录?
比如sqlserver里面有200条记录有一个相同的字段,我想更新其中100条中的这个字段,怎么才能实现?
没有ID字段;想要更新的字段没有区别,比如有一个字段叫做group char(1),原来值都是0,现在想把他们每100个分为一组。前100个值为‘1’,后100个值为‘2’。
update 表 set data=\'1\' where id<=100
没区别怎么更新啊,根本不可能做到! 参考技术A 只用SQL语法好像比较难,呵,一个比较笨的办法,可以在ASP(或其他程序)里写判断语句来执行,做一个到100的循环,将数据一条条读出来修改 参考技术B 你想更新的这100条记录与不想更新的那100条记录有什么区别?
以上是关于用SQL查询分析器查询时怎么把一个字段用“”分割成多个?的主要内容,如果未能解决你的问题,请参考以下文章