我正在从表中选择一个值,该值可以是整数也可以是 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/