SQL Server变量截断

时间:2013-01-04 19:30:49

标签: sql sql-server sql-server-2008

我知道你可以截断一个Table或Table变量,但有没有办法截断变量?

DECLARE @HiddenMe NVARCHAR(MAX)

SET  @HiddenMe = (select XYZ.abc)

If LEN(@HiddenME) >= 1800000  Then would like to truncate @HiddenMe . 

请告诉我。仅供参考,我正在使用sql 2008

2 个答案:

答案 0 :(得分:2)

通过截断,我假设你的意思是截断某个点之后的所有数据,而不是丢弃所有数据(如表截断)。这应该有用。

SET  @HiddenMe=SUBSTRING(@HiddenMe,1,1800000)

答案 1 :(得分:1)

您可以使用LEFT()

set @HiddenME = left(@HiddenME, 1800000)

所以你的脚本将是这样的:

DECLARE @HiddenMe NVARCHAR(MAX)

SET  @HiddenMe = 'lets test a longish string to trim after a certain number of characters'

if LEN(@HiddenME) >= 1800000
  set @HiddenME = left(@HiddenME, 1800000)

请参阅SQL Fiddle with Demo