데이터베이스 개발자 질문과 답변 게시판
안녕하세요. 제가 잘 몰라서 --' 질문드리립니다.
한글이 있는 문자열(필드)에서 예를들어 '가123나다라마' 이러한 문자열에서
select substring('가123나다라마' , 1, 5) 하면 결과값이 '가123나' 이렇게 되잖아요.
제가 알고 싶은건... 한글은 2byte로 계산되어서 select substring('가123나다라마' , 1, 5) 의 결과값이 '가123'
이러한 결과값을 보고 싶은데 어찌해야 될런지요..?
글구... 만약 결과문자열값이 반각으로 잘리면 (select substring('가123나다라마' , 1, 6) ) 이러할시
결과값이 '가123나?' 이렇게 맨마지막 문자가 반각으로 잘리는 경우
맨 마지막 문자가 반각인지 아닌지도 알고 싶습니다.
질문이 좀 애매한가요.. --'
답변 부탁드립니다.
감사합니다. 수고하세요.
Comment 8
-
쓸만한게없네(윤선식)
2013.02.01 00:13
-
minsouk
2013.02.01 10:23
declare @str varchar(100) = '응123선식아소고기또무러가자'
select substring(@str, 1, 6)
--응123선식
select cast(substring(cast(@str as binary), 1, 6) as varchar(100))
--응123
--짤리면 안나와요~ -
쓸만한게없네(윤선식)
2013.02.01 12:00
감사... 이번엔 형이 쏘는겨???
-
minsouk
2013.02.01 13:12
언제나 고기는 니가 쏘는겨........-_-+ 머라노...지금 유치원비 없어서 허덕이는구만....
-
건우아빠
2013.02.01 12:47
전 이게 역시.... 민석님의 아이디어를 도용해서
declare @str varchar(100) = '응123선식아소고기또무러가자'
select substring(@str, 1, 6)
--응123선식
select cast(substring(cast(@str as binary), 1, 6) as varchar(100))
, substring(cast(@str as binary), 1, 6) a값
, substring(cast(cast(substring(cast(@str as binary), 1, 6) as varchar(100)) as binary),1,6) b값
, nchar(unicode( substring(cast(@str as binary), 6, 1) )) --> a값 , b값의 마지막 자리수를 비교해서 틀리면 이내용을 + 하시면 될듯declare @str varchar(100) = '응123선식아소고기또무러가자'
select substring(@str, 1, 6)
--응123선식
select cast(substring(cast(@str as binary), 1, 6) as varchar(100))
, substring(cast(@str as binary), 1, 6)
, substring(cast(cast(substring(cast(@str as binary), 1, 6) as varchar(100)) as binary),1,6)
, case when substring(cast(@str as binary), 6, 1) = substring(cast(cast(substring(cast(@str as binary), 1, 6) as varchar(100)) as binary),6,1) then
cast(substring(cast(@str as binary), 1, 6) as varchar(100))
else
cast(substring(cast(@str as binary), 1, 6) as varchar(100)) + nchar(unicode( substring(cast(@str as binary), 6, 1) ))
end -
minsouk
2013.02.01 13:12
형님!!!! 넘 잘 빼끼는거 아닙니까? ㅋㅋㅋㅋㅋ
^.^~
-
건우아빠
2013.02.01 13:21
내 스승이지... 제자가 스승의 쿼리를 도용하는건 당연... 양심의 가책은 전혀없음.
답글을 보고 mssql 쿼리를 배웠다는것...ㅋㅋㅋ 농담아님 진짜로...
다른 스승님들이 요즘은 답글을 안달아서 아쉽긴 하지만...
-
쓸만한게없네(윤선식)
2013.02.01 14:22
왜 자꾸... 소고기 방이. ...
SELECT LEN('가123나다라마' )
SELECT DATALENGTH('가123나다라마' )
http://msdn.microsoft.com/ko-kr/library/ms173486(v=sql.90).aspx
이걸 활용하시면..
http://www.sqler.com/105010
이 부분도 한 번 확인을... 쿨럭..