我的SQL Express 2012带有一个表,我为字数添加了一个列(整数),表已有几百行。我不确定如何更新列以使"条目"列。
我创建了一个向我显示数据的查询,但是如何使用它来更新表以存储每个条目的字数?
SELECT
ID,
[UserName],
[DateCreated],
LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1 AS 'Word Count'
FROM [dbo].[Notes]
答案 0 :(得分:0)
试试这段代码。
UPDATE Notes SET
WordCount = LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1
然后应该使用该行的单词count更新表中的所有行。
谢谢,
答案 1 :(得分:0)
用于更新表中数据的SQL语言中的动词并不令人惊讶UPDATE
。 The documentation has the full syntax
如果要更新所有行,并且NULL
列中没有Entry
值(这将导致计算失败),则此查询将更新名为WordCount
的列:
UPDATE Notes SET WordCount = LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1
答案 2 :(得分:0)
以下是您如何做到这一点,以便您的值始终是最新的。这里有两大优势。首先,您不必更新表。其次,即使有人用查询更新你的表并且不更新WordCount,这些值也总是最新的。
create table #test
(
Entry varchar(100)
, WordCount as LEN(Entry) - LEN(REPLACE(Entry, ' ', ''))
)
insert #test
select 'two words' union all
select 'three words now'
select * from #test
drop table #test