[SQL] SQLite는의 IF () 문의 대안
SQLSQLite는의 IF () 문의 대안
내가 MySQL을 (펄)에 대한 코드를 가지고 :
UPDATE pages
SET rkey = rkey + 2,
lkey = IF(lkey >= $key, lkey + 2, lkey)
WHERE rkey >= $key
나는 SQLite는이 코드를 사용할 필요하지만, IF () 함수의 지원은 없습니다. 내가 할 수있는 것?
해결법
-
==============================
1.일반적인 SQL 위해 당신은 CASE를 사용할 수 있습니다 :
일반적인 SQL 위해 당신은 CASE를 사용할 수 있습니다 :
http://www.sqlite.org/lang_expr.html "절 CASE 표현식"에서
EG
UPDATE pages SET rkey = rkey + 2, lkey = CASE WHEN lkey >= $key THEN lkey + 2 ELSE lkey END WHERE rkey >= $key
(부속와 업데이트의 예와) SQLite는 & CASE에 대한 또 다른 링크 http://sqlite.awardspace.info/syntax/sqlitepg09.htm
CASE는 일반적인 SQL의 UPDATE에서 사용할 수 있습니다,하지만 난 CASE와 업데이트 SQLite는 지원에 대한 아무런 정보가 없다
http://www.craigsmullins.com/ssu_0899.htm "절 CASE 표현식을 사용하면 데이터 수정"
-
==============================
2.
UPDATE pages SET rkey = rkey + 2, lkey = IF(lkey >= $key, lkey + 2, lkey) WHERE rkey >= $key
??? 그것에
UPDATE pages SET lkey = lkey + 2 WHERE rkey >= $key AND lkey >= $key UPDATE pages SET rkey = rkey + 2, WHERE rkey >= $key
더 나은 아닌가요?
-
==============================
3.SQLite는 버전 3.32.0 및 최신 지원 IIF.
SQLite는 버전 3.32.0 및 최신 지원 IIF.
EG
UPDATE pages SET rkey = rkey + 2, lkey = IIF(lkey >= $key, lkey + 2, lkey) WHERE rkey >= $key;
from https://stackoverflow.com/questions/4874285/if-statement-alternative-in-sqlite by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 안전 SQL 문자열로 문자열을 변환합니까? (0) | 2020.07.02 |
---|---|
[SQL] sp_executesql을 표와 변수를 사용하여 (0) | 2020.07.02 |
[SQL] sp_executesql에 차이 대 저장 프로 시저의 EXEC? (0) | 2020.07.02 |
[SQL] 하지 존재하는 경우 열을 추가 MYSQL (0) | 2020.07.02 |
[SQL] SQL Server 2008의 복합 외래 키 만들기 (0) | 2020.07.02 |