有没有“分裂"?用于 SELECT 查询的 t-sql 中的函数

is there a quot;splitquot; function in t-sql for a SELECT query(有没有“分裂?用于 SELECT 查询的 t-sql 中的函数)
本文介绍了有没有“分裂"?用于 SELECT 查询的 t-sql 中的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想像这样使用我的功能

I want to use my function like this

SELECT BaseSplit(line,';') FROM table

有没有办法做到这一点???

is there any way to do that ???

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

I try CROSS APPLY but it not what I want

我的表格有一列名为 line

My table has a column named line

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

我想将此列拆分为像

15
2
5
Null
10
3
6

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

Is there a string function that does this automatically?
If not, is it possible to write my own function?

推荐答案

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

It should work fine, but you need to schema-qualify functions.

浏览器:

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

如果您的函数在与 dbo 不同的架构中,您显然应该改用它.

If your function is in a different schema than dbo you should obviously use that instead.

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

OK - assuming its a table valued function then...

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

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

That would return a row for each split line + the ID of the that entry in the main table (assuming a column named Id exists in the main table). If you want better that that I'm going to need an example of what output you expect

这篇关于有没有“分裂"?用于 SELECT 查询的 t-sql 中的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Query with t(n) and multiple cross joins(使用 t(n) 和多个交叉连接进行查询)
Unpacking a binary string with TSQL(使用 TSQL 解包二进制字符串)
Max rows in SQL table where PK is INT 32 when seed starts at max negative value?(当种子以最大负值开始时,SQL 表中的最大行数其中 PK 为 INT 32?)
Inner Join and Group By in SQL with out an aggregate function.(SQL 中的内部连接和分组依据,没有聚合函数.)
Add a default constraint to an existing field with values(向具有值的现有字段添加默认约束)
SQL remove from running total(SQL 从运行总数中删除)