UPDATE pro_na
SET
cul = b.ma
FROM pro_na
LEFT JOIN(
SELECT
ID ,
cast(substring(LTrim(abs(checksum(newid()))),0,5) as decimal(18, 4)) as ma
FROM pro_na
) b ON pro_na.ID = b.ID;
SQL Server update连接表查询写法
主要的是
cast(substring(LTrim(abs(checksum(newid()))),0,5) as decimal(18, 4)) as ma
1、随机数: RAND
返回从 0 到 1 之间的随机 float 值。
2、newid()
创建guid 的方法,保证生成的字符串都不一样;
3、checksum() 校验和值:CHECKSUM 返回值是 int
返回按照表的某一行或一组表达式计算出来的校验和值。CHECKSUM 用于生成哈希索引。
这样对不同的GUID进行HASH校验,返回的int也不一样,包含有负数;可以保证每个随机值都不一样。