我正在尝试将值动态转换为未知的已保存数据类型,简单示例:
DECLARE @Type nvarchar(max) = 'int'
SELECT CONVERT(@Type, '1234')
如何实现这一目标?
答案 0 :(得分:5)
唯一的方法是制定一个字符串并执行它
DECLARE @Type nvarchar(max) = 'int'
Exec('SELECT CONVERT(' + @Type + ', ''1234'')')
答案 1 :(得分:1)
CASE声明怎么样?这些都是INT
,但它显示了思想......
DECLARE @Type nvarchar(max);
SET @Type = 'int';
SELECT CASE WHEN Upper(@Type)='INT' THEN CONVERT(int, '1234')
WHEN Upper(@Type)='INT' THEN CONVERT(int, '1234')
ELSE CONVERT(int, '1234') END;