|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Добрый день Мне поставили такую задачу - есть таблица с списком пользователей: CREATE TABLE NEW_TABLE_3 ( USERID INTEGER, BADGENUMBER VARCHAR(30), SSN VARCHAR(30), NAME VARCHAR(30), DEFAULTDEPTID INTEGER ); В поле BADGENUMBER случайно попали неверные данные, это выглядит так: пользователь Кузнецова А имеет два BADGENUMBER, один 922, другой 00922. Нужно найти всех с задублированным NAME и вывести USERID тех, у кого BADGENUMBER создан добавлением в начало 0. Это вообще реально sql сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 11:33 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Gallemar, реально. GROUP BY NAME + HAVING COUNT(*) > 1 потом соединяешь с исходной таблицей по NAME и в условии добавляешь BADGENUMBER STARTING WITH '0' ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 11:37 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Я тебя правильно понял? Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 11:57 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Gallemar, вернее так: Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:01 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Gallemar, почти. Я бы сделал так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:02 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Не получается. Он выводит вообще всех,кто на 0 начинается. А мне надо ещё и найти того, кто создан был с добавлением 0 к BADGENUMBER (китайская программа при попытке добавить повторяемое значение просто добавляла 0 к значению). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:09 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Gallemar, и сколько раз она может 0 к началу дописать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:16 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Симонов Денис, 0 и 00. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:17 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Gallemar, Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:24 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Gallemar, хотя, тут тебе и такого хватит, судя по всему.... Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:29 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, что-то мне кажется что USERID здесь уникальный, а потому JOIN всё равно потребуется ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:32 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Симонов Денис, ну тогда исключаем его из группировки, оставляя только NAME, далее джойним результат к оригиналу таблицы по соответствию имени... Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:37 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Gallemar, У вас там баджэнумбер - всё можно преобразовать к целочисленному типу или нет? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 12:46 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Sia-Ori1Gallemar, У вас там баджэнумбер - всё можно преобразовать к целочисленному типу или нет? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
как минимум, не хватает условия неравенства строки самой себе. ну и непонятно, как поступать с одинаковыми номерами, но разными именами. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 13:01 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, ну да, потом только увидел, что вот так будет веселее Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
индекс по текстовому полю поможет искать начинающиеся с 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 13:05 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Спасибо. Немного вопрос не по теме - в ms sql есть аналог starting with? Пока только додумался до like '0[^0]%' ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 15:12 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
GallemarСпасибо. Немного вопрос не по теме - в ms sql есть аналог starting with? Пока только додумался до like '0[^0]%'Интересно, а чем '0[^0]%' лучше '0%'? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 15:18 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
WildSery, это пример из запроса,искал начинающиеся с нуля,но без второго нуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 15:21 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Igor Gallemar, STARTING WITH никак не поможет с "регулярками", вроде. Придётся 2 штуки писать, starting with '0' and not starting with '00' ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 15:40 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
WildSery, да мне надо аналогичный запросвыполнить в ms sql,а аналогичную строковую функцию не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 15:42 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
GallemarПока только додумался до like '0[^0]%'Т.е. 0abcde тебя устраивает ? Я бы написал 0[1-9]% ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 15:56 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
hvlad,да устраивает :) Удивлен, что в T-SQL нет такой функции,всегда считал,что ms sql и оракл по функционалу впереди всей планеты ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2017, 16:00 |
|
Как решить такую задачу?
|
|||
---|---|---|---|
#18+
Igor GallemarУдивлен, что в T-SQL нет такой функции,всегда считал,что ms sql и оракл по функционалу впереди всей планетыВ T-SQL есть более гибкий CHARINDEX, позволяющий в общем случае определить факт вхождение одной строки в другую с любой позиции. В Oracle для этих же целей используется функция INSTR. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2017, 04:28 |
|
|
start [/forum/topic.php?fid=40&fpage=48&tid=1561694]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 163ms |
0 / 0 |