Eu preciso atualizar um dos campos varchar em uma tabela, mas apenas o registro que é o varchar mais longo (tem mais dados nele). Eu poderia facilmente encontrá-lo com esta consulta:
SELECT TOP(1) options
FROM ForrasReportsRicsiTeszt
ORDER BY LEN(options) DESC
Agora preciso atualizá-lo, mas sou bastante inexperiente com sql. Este é um servidor sql de 2005 ms.
minha consulta para atualização:
UPDATE ForrasReportsRicsiTeszt
SET options = REPLICATE(options, 4)
WHERE TOP(1) ORDER BY LEN(options) DESC
Isso me dá um erro no TOP(1) que era bastante esperado. Eu simplesmente não sei o jeito certo de escrever essa consulta, como eu poderia atualizar apenas o campo varchar mais longo? O que eu consegui com minha consulta de seleção. Infelizmente, não há chave primária que eu possa usar no meu WHERE.
Qualquer ajuda seria muito apreciada!
Usando a função MAX , você pode escrever o seguinte para obter a entrada com o varchar mais longo
Isso pode ser combinado com uma instrução UPDATE para fornecer
Como alternativa, você pode usar uma expressão de tabela comum (CTE) .
Você pode usar a função a função SQL
DATALENGTH
para obter o valor mais longo e usar um CTE para obter o maiorDe maneira semelhante, mas não muito ideal, você pode fazer isso