1
1
这是一个将任何文本字符串解析为值表的通用函数…您可以很容易地使用它来完成您想要完成的工作:
|
2
1
您不能在SQL中定义这个特殊语句。 最好的方法是使用动态SQL创建全局临时表。然后可以使用。 |
3
1
在T-SQL中,函数必须具有具体的返回类型。您将无法返回包含不同数据类型的表,除非您将其转换为其他进程(例如varchar)解释的基本数据类型,但这似乎会破坏函数的用途。 您可以使用动态SQL创建一个表,它允许您在表定义中指定精度和比例:
定义了表后,您应该能够使用CAST运算符将数据以类似的方式插入行中:
可以说,您甚至不需要强制转换操作,因为当您插入十进制列时,SQL Server将隐式地尝试转换varchar(max)表达式。 不管是哪种方式,它都不漂亮,我建议您在使用动态SQL和它带来的所有头痛之前,先考虑一下用其他方式解决问题的可能性。 |
4
1
试试这个,我只编码支持精度高达5的小数,但是如果需要,你可以增加它:
此示例代码使用以下函数:
样本代码输出:
|
5
0
Cast和动态SQL,尽管我不认为函数能够很好地支持后者。我一直在想:
|
6
0
正如其他人提到的,表值用户定义函数必须为每个字段具有特定的返回类型。 我能绕过的方法就是稍微改变一下设计。让函数将[sequence]分解为字符串表。还不进行转换…
然后,一旦您有了一个字符串表,就应用您需要的转换。正如其他人所提到的,这很可能是由动态SQL实现的。 然而,动态SQL在代码主体中的存在可能是一个真正的痛苦… |
Community wiki · SQL语法新手 1 年前 |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |