간단한 질문일지 모르지만, 데이터베이스를 처음 만저보는 저한텐 어려움이 있어서 질문을 드립니다.
BP01 | RACK1 | SLOT 1 |
BP01 | RACK1 | SLOT 10 |
BP01 | RACK1 | SLOT 11 |
BP01 | RACK1 | SLOT 2 |
BP01 | RACK1 | SLOT 3 |
BP01 | RACK2 | SLOT 1 |
BP01 | RACK2 | SLOT 10 |
BP01 | RACK2 | SLOT 11 |
BP01 | RACK2 | SLOT 2 |
BP01 | RACK2 | SLOT 3 |
이런형태로 데이터가 저장되어있는데요 위 데이터는 한테이블에 들어가있습니다.
보시다시피 Slot_Number가 1 10 11 12 13 이런형태로 들어가있습니다.
데이터를 집어넣을땐 분명 1 2 3 4 5 순으로 집어넣었습니다만 다넣고 조회하니 저렇게 나오더라고요.
이데이터를 C#으로 DataGridView에 뿌려줘서 행 순서대로 사용을 해야되는데 순서가 섞여있으니 어려움을 겪고 있습니다.
RACK1 SLOT1, 2, 3, 10, 11
RACK2 SLOT1 ,2 ,3 10, 11
이런형태로 변환을 좀 하고싶은데 어떻게 하면 좋을지 답변좀 부탁드리겠습니다.
감사합니다.
Comment 4
-
이리
2018.01.10 10:01
-
베로
2018.01.10 10:04
네 문자형과 숫자형이 섞여있긴 합니다.
-
withSQLServer
2018.01.10 10:27
문자열 + 숫자 인 경우 문자열로 봅니다
문자열인 SLOT 까지는 동일하나 뒤에 숫자처럼 보이는 문자 비교 시 문자열 앞에서부터 비교하여
SLOT10도 앞에서부터 5자리까지만 먼저보면 SLOT1과 동일하기 때문에 SLOT2보다 먼저 나옵니다.
쿼리로 SLOT 문자열을 제거하고 뒤에 숫자 처럼 생긴 문자만 남겨 이 문자를 숫자로 변환하여 정렬했습니다.
다른 방법은 SLOT 뒤의 숫자만 다른 컬럼으로 빼는 것입니다.
사실 SLOT1, SLOT2 는 SLOT 이라는 문자와 뒤에 숫자 데이터가 결합된 의미 입니다.
결국 한 컬럼이 두 가지 정보를 갖게되는 상황으로 보입니다. 경험상 분리하는게 좋습니다.
데이터를 다 받아 본 것은 아니지만, 샘플에 있는 문자열들은 모두 같은데
보기 편하게 문자열과 같이 저장하신 것 같습니다.
결국 숫자가 필요한 것이고 문자는 컬럼명으로하면 되지 않을까요!? 제 개인적인 생각입니다!^^
-
베로
2018.01.10 10:53
자세한 답변 감사드립니다.
저도 저런형태로 진행하면 편하긴 할 것 같습니다. 저런형태로 보여줘야겠다 라고 좀 갇혀있던것 같네요
좋은답변 참고하겠습니다. 감사합니다.
첨부파일이 보이지 않지만..
해당 컬럼의 data형식이 숫자형이 아니라 문자형이 아닐까 생각됩니다.