-1
我有一块sql脚本,我将其输出设置为文本运行。 它返回的列设置为varchar(255)
,所以在文本输出中该列的宽度为255个字符。T-SQL到文本:根据需要设置列宽
我知道我可以使用
Cast(ColumnName As VarChar(75))) As ColumnName
来限制它下降到75个字符的宽度,但我想实现的是,它会自动设置宽度返回最宽的结果。有谁知道这是否可能?
我有一块sql脚本,我将其输出设置为文本运行。 它返回的列设置为varchar(255)
,所以在文本输出中该列的宽度为255个字符。T-SQL到文本:根据需要设置列宽
我知道我可以使用
Cast(ColumnName As VarChar(75))) As ColumnName
来限制它下降到75个字符的宽度,但我想实现的是,它会自动设置宽度返回最宽的结果。有谁知道这是否可能?
使用动态查询来实现结果。
查看下面的一个示例脚本。
CREATE TABLE #temp
(Column1 VARCHAR(50))
INSERT INTO #temp (Column1) VALUES ('1111-123'),('15454454aa-4545')
DECLARE @Delimit INT
DECLARE @queryString VARCHAR(MAX)
SELECT @Delimit=MAX(LEN(Column1)) FROM #temp --Getting the Length of largest column data
SET @queryString='SELECT CAST(Column1 AS VARCHAR('+CONVERT(VARCHAR(50),@Delimit)+'))Column1
FROM #temp'
EXEC(@queryString)
完美工作,只使用过一次动态SQL,但理解您的解决方案,谢谢 – Jeffrey
您是指设置UI元素的宽度?你可以将它设置为'Max(Len(ColumnName))'。 – Serg
“文本输出”是什么意思? 'VARCHAR(X)'是用于长度不超过X个字符的文本,所以你得到的值将正好是内容的长度,与'CHAR(X)'相反,其中每个值将*精确* X字符长,如果更短,填充空格。 –