일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 정규식
- array
- 이미지세로길이
- FileSystemObject
- sql랭킹
- update
- ERD
- join
- sql업데이트
- asp함수
- inner join
- VarType
- WML
- SPLIT
- MSSQL보안
- XML
- instr
- tempDB
- xmldom
- jdbc driver
- JavaScript
- VARIABLE
- 한글입력체크
- 자바기초
- 이미지가로길이
- 인젝션
- wap
- javascript 한글입력체크
- sql순위
- injection
- Today
- Total
목록쿼리_MSSQL (69)
3초기억력
select t1, t2, t3, case t4 when '1' then 'OK' when '2' then 'Fail' end as t4_YN from dual; select t1, t2, t3, case when t4 >= 1000 then 'OK' when t4 >= 2000 then 'Fail' end as t4_YN from dual;
1. 스칼라 서브쿼리란? 스칼라 서브쿼리란 Select-List에서 서브쿼리가 사용될 때 이를 스칼라 서브쿼리라 칭함. 스칼라 서브쿼리의 특징은 다음과 같음. 하나의 레코드만 리턴이 가능하며, 두개 이상의 레코드는 리턴할 수 없다. 일치하는 데이터가 없더라도 NULL값을 리턴할 수 있다. 이는 원래 그룹함수의 특징중에 하나인데 스칼라 서브쿼리 또한 이 특징을 가지고 있다. -- 1. 그룹함수 사용 안할 때는 리턴하는 값이 없음 SELECT 1 FROM DEPT WHERE 1 = 2 ; no rows selected -- 2. 그룹함수를 사용하면 값을 리턴함 SELECT MIN(DEPTNO) FROM DEPT WHERE 1 = 2 ; MIN(DEPTNO) ----------- 1 row selected. ..
SELECT SEQ, TITLE, NEXT_SEQ, NEXT_TITLE, PRE_SEQ, PRE_TITLE FROM ( SELECT SEQ, TITLE, LEAD(SEQ,1,'') OVER(ORDER BY REG_DATE DESC) AS NEXT_SEQ, LEAD(TITLE,1,'') OVER(ORDER BY REG_DATE DESC) AS NEXT_TITLE, LAG(SEQ,1,'') OVER(ORDER BY REG_DATE DESC) AS PRE_SEQ, LAG(TITLE,1,'') OVER(ORDER BY REG_DATE DESC) AS PRE_TITLE FROM TN_BOARD_NOTICE_WEB ) A WHERE A.SEQ='해당 게시글 seq 번호'
ms-sql에서 사용됨 -- 전체 테이블의 insert 스크립트 생성 exec sp_msforeachtable 'exec sp_geninsertstmt N''?'''; -- 해당 테이블만 추출 exec sp_geninsertstmt N'테이블명' -- 해당 테이블의 where 절 만 exec sp_geninsertstmt N'테이블명', N'where idx>10000';
ms-sql sP --// CAT_ID 추출 SELECT @CAT_ID = CAT_ID FROM TB_CATEGORY WHERE CH_ID=@ch_id and CAT_ORDER=@cat_order and CAT_NAME=@cat_name --// 복수개의 일자ID 를 SPLIT 하여 TB_CAT_DAY 에 INSERT IF @snd_day_id'' BEGIN WHILE CHARINDEX(',', @snd_day_id) 0 BEGIN INSERT INTO TB_CAT_DAY (SND_DAY_ID, CAT_ID) VALUES (SUBSTRING(@snd_day_id,1,CHARINDEX(',',@snd_day_id)-1), @cat_id) SET @snd_day_id=SUBSTRING(@snd_day_id,..
MS-SQL - 년월일시분초 를 14자리로 바꾸는 쿼리 select convert(varchar(8), getdate(), 112) + replace(convert(varchar(8), getdate(), 108), ':', '')
CREATE FUNCTION FN_TAGS (@pkey varchar(20)) RETURNS varchar(1000) AS /*************************** 태그 묶음 펑션 2009.02.26 V001 @정민철 ****************************/ BEGIN DECLARE curTag CURSOR FOR SELECT TAG_NAME FROM TB_TAG WHERE BOARD_ID = @pkey OPEN curTag DECLARE @tagnames varchar(1000) DECLARE @tagname varchar(20) SET @tagnames = '' FETCH NEXT FROM curTag INTO @tagname WHILE @@FETCH_STATUS = 0 BEG..
저장 프로시저내에서도 일반 프로그램처럼 While 문과 같은 루핑문장을 사용하고자 할 경우가 있다. 이는 일반적으로 단일 Row만을 검출해서 값을 비교할수 없는 여러 Row의 값이 출력되어야 할경우에 사용하게 된다. 이런경우 일반적으로 사용되는 방법은 1. Select 문을 통해서 레코드정보(A)를 얻는다. 2. ASP 페이지에서 WHILE(또는 LOOP)문을 통해서 A의 값을 순차적으로 루핑을 시키면서 3. INSERT, UPDATE 또는 기타 수행문을 실행한다. 4. A의 레코드를 닫는다. 의 순서로 진행되어진다. 하지만 이런경우 여러개의 쿼리들을 돌아다녀야하고, 수행 속도또한 웹페이지(웹서버)에 디펜던트 하기때문에 속도적으로 불리한면이 있다. 이를 보완하기위해서 다음과 같이 커서를 사용할수 있다. ..
프로시저 및 커서 ***설명 프로시저에 커서 선언해서 사용하는 방법 ***코드 alter procedure usp_p_personal_info(@rtnint output ) as DECLARE @UPDT_DT DATETIME DELETE M_TB_COM_PERSONAL_INFO BEGIN DECLARE CUR_2 CURSOR FOR SELECTeif_seq_no AS individual_no FROM airtest.dbo.atst_200(nolock) WHERE and eif_seq_no = '1000063830' ORDER BY eif_seq_no ASC OPEN CUR_2 SELECT@UPDT_DT = NULL FETCH NEXT FROM CUR_2 INTO @individual_no WHILE @@..
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[SP_ConfigDel] @returnv int output, @DATA VARCHAR(1000) AS BEGIN BEGIN TRAN WHILE CHARINDEX(',',@DATA)0 BEGIN Update TB_ConfigData set SFlg='N' , SFlgDate=getdate() where IDX=SUBSTRING(@DATA,1,CHARINDEX(',',@DATA)-1) SET @DATA=SUBSTRING(@DATA,CHARINDEX(',',@DATA)+1,LEN(@DATA)) IF CHARINDEX(',',@DATA)=0 BREAK ELSE CONTINUE END EN..