SQL如何实现

SIWEILIULANG 2007-08-02 03:10:45

字段A
,123,124,125,

查询显示

字段A
123
124
125
请问如何实现
...全文
149 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
SIWEILIULANG 2007-08-02
  • 打赏
  • 举报
回复
谢谢
paoluo 2007-08-02
  • 打赏
  • 举报
回复
--創建函數
Create Function F_Split(@String Varchar(8000), @Split Varchar(1000))
Returns @SplitTable Table(SplitString Varchar(2000))
As
Begin
Declare @SplitString Varchar(2000)
Select @SplitString = ''
While (CharIndex(@Split, @String) > 0)
Begin
Select @SplitString = Left(@String, CharIndex(@Split, @String) - 1), @String = Stuff(@String, 1, CharIndex(@Split, @String), '')
If(@SplitString != '')
Insert @SplitTable Select @SplitString
End
If(Len(@String) > 0)
Insert @SplitTable Select @String
Return
End
GO
--測試
Select * From dbo.F_Split(',123,124,125,', ',')
GO
Drop Function F_Split
--結果
/*
SplitString
123
124
125
*/
paoluo 2007-08-02
  • 打赏
  • 举报
回复
SIWEILIULANG(思维流浪) ( ) 信誉:100 2007-08-02 16:27:55 得分: 0


自增列在函数没办法用啊


-------------
函數裡不是這種寫法。
SIWEILIULANG 2007-08-02
  • 打赏
  • 举报
回复
自增列在函数没办法用啊
SIWEILIULANG 2007-08-02
  • 打赏
  • 举报
回复
那能帮我写个函数吗?
paoluo 2007-08-02
  • 打赏
  • 举报
回复
SIWEILIULANG(思维流浪) ( ) 信誉:100 2007-08-02 15:30:08 得分: 0


哦,没有更好的办法吗?


--------------
寫函數也可以實現。

但是在數據量大的情況下,這種方法效率更高些。
SIWEILIULANG 2007-08-02
  • 打赏
  • 举报
回复
哦,没有更好的办法吗?
paoluo 2007-08-02
  • 打赏
  • 举报
回复
Select Top 100 ID = Identity(Int, 1, 1) Into #T From Syscolumns A, Syscolumns B

改大點,10000應該足夠大了吧

Select Top 10000 ID = Identity(Int, 1, 1) Into #T From Syscolumns A, Syscolumns B
SIWEILIULANG 2007-08-02
  • 打赏
  • 举报
回复
如果是多条记录,不能确定最后产生的行数是否在100以内呢
paoluo 2007-08-02
  • 打赏
  • 举报
回复
Create Table A
(A Varchar(100))
Insert A Select ',123,124,125,'
GO
Select Top 100 ID = Identity(Int, 1, 1) Into #T From Syscolumns A, Syscolumns B

Select
A = Substring(A.A, B.ID, CharIndex(',', A.A + ',', B.ID) - B.ID)
From A, #T B
Where Substring(',' + a.A, B.id, 1) = ',' And Substring(A.A, B.ID, CharIndex(',', A.A + ',', B.ID) - B.ID) != ''
Order By A

Drop Table #T
GO
Drop Table A
--Result
/*
A
123
124
125
*/

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧