프로젝트의 경우 알파벳을 반복하고 데이터베이스의 일부 값에 대해 각 문자를 검색해야합니다. 이 함수는 각 문자에 대한 일치 수를 반환합니다.SQL 저장 프로 시저에서 A-Z 루프
SQL 저장 프로 시저에서이 작업을 수행 할 수 있기를 원하지만 SP에서 'FOR letter = A to Z'루프를 수행하는 방법이 확실하지 않습니다. 아무도 이것이 어떻게 할 수 있는지 알고 있습니까?
프로젝트의 경우 알파벳을 반복하고 데이터베이스의 일부 값에 대해 각 문자를 검색해야합니다. 이 함수는 각 문자에 대한 일치 수를 반환합니다.SQL 저장 프로 시저에서 A-Z 루프
SQL 저장 프로 시저에서이 작업을 수행 할 수 있기를 원하지만 SP에서 'FOR letter = A to Z'루프를 수행하는 방법이 확실하지 않습니다. 아무도 이것이 어떻게 할 수 있는지 알고 있습니까?
65 (A) ~ 90 (Z)의 루프를 사용하고 T-SQL CHAR() function을 사용하십시오.
물론 SQL Server 데이터베이스를 사용하고 있다고 가정합니다. 그렇지 않은 경우 사용중인 DB를 게시하십시오.
완벽하다, 그랬다 - 나는 그 기능이 SQL에 있다는 것을 몰랐다! 많은 도움을 주신 모든 분들께 감사드립니다. – Mark
"그룹 기준"을 사용해야하고 쿼리에 "카운트"도 포함해야합니다. 당신은 여기에서 추가 정보를 찾을 수 있습니다 http://msdn.microsoft.com/en-us/library/ms177673.aspx
영문자 만 필요하면 영문자가 필요합니다. 65 (아스키는 A)와 90 (Z는)에서 루프를 수행하고 char letter = (char)i
을 사용하여 문자를 얻을 수 있습니다.
영어 이외의 언어도 필요한 경우 웹 구성 설정 "ABC ...... Z"를 설정하고 반복하십시오.
이것은 효과적이었습니다 - 도움에 대해 대단히 감사합니다! – Mark
;WITH Alphabet AS
(
SELECT CHAR(65) AS Letter, 65 AS Code
UNION ALL
SELECT CHAR(Code + 1), Code + 1
FROM Alphabet
WHERE Code < 90
)
SELECT Letter
FROM Alphabet
with ATable(c) as
(
select cast('A' as CHAR(1)) as c
union all
select CHAR(ASCII(c)+1) as C from ATable where C<'Z'
)
select * from ATable
WITH alpha AS
(
SELECT 65 AS c
UNION ALL
SELECT c + 1 FROM alpha
WHERE c < 90
)
SELECT CHAR(c) FROM alpha
쉬운 방법, 테이블 "알파벳"을 작성하고 A ~ Z까지 채 웁니다? –
답장을 보내 주셔서 감사합니다. 불행히도이 경우에는 작동하지 않습니다. – Mark
@ 마크, 왜 그럴까? 루프보다 성능이 좋은 합리적인 솔루션처럼 보입니다. – usr