我需要更新表中的 varchar 字段,但只有最长的 varchar 记录(其中包含最多的数据。)。我可以通过以下查询轻松找到它:
SELECT TOP(1) options
FROM ForrasReportsRicsiTeszt
ORDER BY LEN(options) DESC
现在我需要更新它,但我对 sql 非常陌生。这是一个 2005 毫秒的 sql 服务器。
我的更新查询:
UPDATE ForrasReportsRicsiTeszt
SET options = REPLICATE(options, 4)
WHERE TOP(1) ORDER BY LEN(options) DESC
这给了我一个 TOP(1) 的错误,这是意料之中的。我只是不知道编写此查询的正确方法,我怎么能只更新最长的 varchar 字段?我设法用我的选择查询得到的那个。可悲的是,没有可以在 WHERE 中使用的主键。
任何帮助将非常感激!
使用MAX函数,您可以编写以下内容来获取具有最长 varchar 的条目
然后可以将其与 UPDATE 语句结合起来给出
或者,您可以使用Common Table Expression (CTE)。
您可以使用函数 SQL 函数
DATALENGTH
来获取最长的值,并使用 CTE 来获取最大的值以类似但不是非常理想的方式,您可以这样做