[SQL] T-SQL의 UPDATE의 모든 행에 대해 RAND 차이가
SQLT-SQL의 UPDATE의 모든 행에 대해 RAND 차이가
나는 시험 데이터가있는 테이블을 업데이트 할 수있는 후속의 T-SQL을 가지고 :
UPDATE
SomeTable
SET
Created = GETDATE ( ) - CAST ( RAND ( ) * 365 AS int ) ,
LastUpdated = GETDATE ( ) - CAST ( RAND ( ) * 365 AS int )
나는 불행하게도 그것은 모든 행에 대해 동일한 날짜를 사용, 그것은 지난 해에 무작위로 모든 DAE를 선택하고 싶다. 그것은 업데이트 모든 행 무작위로 얻을 수있는 가장 좋은 방법은 무엇입니까?
해결법
-
==============================
1.사용 RAND (체크섬 (CHANGE ()))
사용 RAND (체크섬 (CHANGE ()))
CHECKSUM (NEWID ()가) 이미 임의 있기 때문에 귀하의 경우에, 당신은 checkum 모듈로 할 수있다.
CHECKSUM(NEWID()) % 365
-
==============================
2.당신은 단지 지난 해의 일이를 사용하려는 경우 (@ GBN의 답변에 따라) :
당신은 단지 지난 해의 일이를 사용하려는 경우 (@ GBN의 답변에 따라) :
select GETDATE ( ) - ABS( CHECKSUM(NEWID()) % 365 )
from https://stackoverflow.com/questions/1214748/rand-not-different-for-every-row-in-t-sql-update by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 평균 및 그룹 별과 SQL 쿼리 (0) | 2020.07.07 |
---|---|
[SQL] WHERE, SQL Server의 CASE (0) | 2020.07.07 |
[SQL] "ORA-01438 :이 항목 허용 지정된 정밀도보다 큰 값"3을 삽입 할 때 (0) | 2020.07.07 |
[SQL] MySQL의 제한 범위 (0) | 2020.07.07 |
[SQL] 더블 도트 테이블 규정 (0) | 2020.07.07 |