sql - 根据变量类型在 SQL 中进行条件分支

标签 sql sql-server sql-server-2005 tsql

我正在从表中选择一个值,该值可以是整数也可以是 nvarchar。它存储为 nvarchar。我想有条件地调用一个函数,如果该值是整数(也就是说,如果它可以转换为整数),则该函数将转换该值,否则我想选择不进行转换的 nvarchar。

这正在访问 SQL Server 2005 数据库。

select case
    when T.Value (is integer) then SomeConversionFunction(T.Value)
    else T.Value
end as SomeAlias

from SomeTable T

请注意,我遇到问题的是“(是整数)”部分。提前致谢。

更新

查看对 Ian 答案的评论。它更好地解释了原因和内容。感谢大家的想法。

最佳答案

 select case
     when ISNUMERIC(T.Value) then T.Value 
     else SomeConversionFunction(T.Value)
 end as SomeAlias

此外,您是否考虑过使用 sql_variant 数据类型?

关于sql - 根据变量类型在 SQL 中进行条件分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697295/

相关文章:

sql - 在 ASP 中如何只显示数据库表中的某些行?

mysql - posts_per_page 设置为 1,返回 50 个帖子

c# - 优化具有外键访问的 LINQ to SQL 语句

sql-server - 列出 SQL Server 2005 中哪些列具有全文索引

SQL Server 2005 表假脱机(Lazy spool)——性能

sql - 从 NodeJs 连接 SQL 数据库 - ConnectionError : Connection not yet open

Sql强制转换为没有科学计数法的 float

sql - 我是否必须写入 "GO"字才能执行 SQL Server 语句?

sql-server - NVarchar,Bin排序规则,Bin2排序规则有什么区别?

c# - 以编程方式获取所有存储过程的简单方法