是否在t-sql中为SELECT查询提供了“拆分”功能

时间:2014-01-16 15:06:47

标签: sql sql-server tsql

我想使用我的功能

SELECT BaseSplit(line,';') FROM table

有没有办法做到这一点?

我尝试CROSS APPLY但不是我想要的


我的表有一个名为line

的列
line 
______
15;2;5
NULL
10;3;6

我想将此列拆分为

15
2
5
Null
10
3
6

是否有自动执行此操作的字符串函数?
如果没有,是否可以编写自己的函数?

1 个答案:

答案 0 :(得分:1)

它应该可以正常工作,但你需要对函数进行模式限定。

IE:

SELECT dbo.BaseSplit(line,';') FROM table

如果你的功能与dbo的模式不同,你显然应该使用它。

好的 - 假设它有一个表值函数,然后......

SELECT t.Id, f.*  FROM table AS t CROSS APPLY dbo.BaseSplit(line,';') AS f

这将为每个分割行返回一行+主表中该条目的ID(假设主表中存在名为Id的列)。如果你想要更好,我需要一个你期望输出的例子