27.02.2020, 19:57 [+3 UTC]
в нашей команде: 4 241 чел. | участники онлайн: 7 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.82 (22.02.2020)
JS-v.1.35 | CSS-v.3.37

Общие новости:
06.01.2020, 22:45

Форум:
27.02.2020, 16:01

Последний вопрос:
27.02.2020, 18:09
Всего: 151687

Последний ответ:
27.02.2020, 18:42
Всего: 259815

Последняя рассылка:
27.02.2020, 15:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
30.04.2010, 15:44 »
Мироненко Николай Николаевич
Спасибо за подробный и понятный ответ. А сам шунт остался невредим, там перегорело именно место пайки smile [вопрос № 178086, ответ № 261118]
20.12.2011, 12:33 »
starlet
Спасибо огромное!!!! [вопрос № 184808, ответ № 269223]

РАЗДЕЛ • Базы данных

Установка и настройка серверов баз данных, таблицы и запросы.

[администратор рассылки: Коцюрбенко Алексей Владимирович (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 720
solowey
Статус: Специалист
Рейтинг: 267
SAW
Статус: 7-й класс
Рейтинг: 138

Перейти к консультации №:
 

Консультация онлайн # 72589
Раздел: • Базы данных
Автор вопроса: Драк Георгий
Отправлена: 25.01.2007, 14:33
Поступило ответов: 8

Здраствуйте. У меня два вопроса.
1. Как из поля типа text сделать выборку первых n символов ?
2. После выполнения запроса "SELECT * FROM table;" данные возрашаются в порядке их добавления, а как сделать что бы они шли в обратном порядке или "перевернуть"(в самом sql запросе) ?

Состояние: Консультация закрыта

Ответ # 139078 от Трубчанин Андрей Сергеевич

Здравствуйте, Драк Георгий!

1) В SQL-запросе можно выбирать только значения полей. Чтобы выбрать n символов, нужно провести дополнительную обработку выбранных значений.
2) В SQL-запросе можно сделать только ORDER BY, чтобы отсортировать по значению столбца.

Возможно, в какой-то реализации SQL (конкретной СУБД) такие опции предусматриваются. Все зависит от Вашей СУБД.


Консультировал: Трубчанин Андрей Сергеевич
Дата отправки: 25.01.2007, 15:09

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 139091 от Евгений Крюков

Здравствуйте, Драк Георгий!
1. Вам поможет функция SUBSTR(имя столбца, с какого символа начинаем, сколько берем)
Пример использования в приложении.
2 Сортировка вызывается конструкцией ORDER BY столбец(или группа столбцов) ASC|DESC (по возрастанию|по убыванию)
Например,
SELECT EMPNO, ENAME FROM EMP ORDER BY EMPNO - сортировать столбец EMPNO по возрастанию (ASC можно не указывать)
SELECT EMPNO, ENAME FROM EMP ORDER BY EMPNO DESC - сортировать столбец EMPNO по убыванию.
SELECT EMPNO, ENAME FROM EMP ORDER BY EMPNO ,ENAME- сортировать сначала столбец EMPNO, в случае одинаковых значений сортировать по столбцу ENAME

Также, во многих базах вместо указания названия столбца можно использовать его номер в запросе, например последний запрос можно переписать так:
SELECT EMPNO, ENAME FROM EMP ORDER BY 1,2

Приложение:


Консультировал: Евгений Крюков
Дата отправки: 25.01.2007, 15:30

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 139096 от Филатов Евгений Геннадьевич

Здравствуйте, Драк Георгий!
Может немного не такой будет ответ, но для MS SQL работает так:
1. В самом запросе можно обрабатывать строковые поля при помощи функций Left, Right, Len, Ltrim, Rtrim, Trim, Substring и другие. Эти функции встроены в язык T-SQL.
Для Вас подойдет запрос " Select Left ( Name , 5 ) as Small_Name From table".
2. На самом деле последовательность записей в Вашем запросе могла быть и другой. Записи в запросе не отсортированы, поэтому они отображаются по мере их добавления. Для возможности использования сортировок в запросах желательно наличие ключевых полей, будь то дата создания записи, номер документа, код записи и т.п.
Тогда Ваш запрос можно было бы продолжить примерно так :
"... Order by Data_Doc, Nom_Doc"
Второе условие сортировки необходимо для сортировки внутри даты.
При наличии таких полей возможен отбор записей по условию, например:
"... Where Data_Doc>cdate ( '25.06.2006' ) and Data_Doc<cdate ( '30.06.2006' ) Order by Data_Doc, Nom_Doc"
В некоторых СУБД имеется специальный тип поля - счетчик, который однозначно идентифицирует запись и автоматически присваивается при добавлении новой записи.
Если в Вашей базе в добавляемой записи нет такого поля, которое бы как-то отличало эту запись от существующих ( т.е. у каждой последующей записи значение поля больше ( или меньше ) , чем у всех предыдущих ) , то отсортировать в порядке их добавления или убывания будет невозможно.
Т.е. если в Вашей базе имеется поле типа ДАТА, и у нескольких записей значение этого поля совпадает, то после сортировки по полю внутри группы записей с одинаковым значением порядок расположения может быть разным в различные моменты времени запроса.
Сортировка может быть не только по полю, а и по результатам вычислений, например:
"... Order by Day (Data_Doc ) , Month (Data_Doc ) , Year (Data_Doc ) , Nom_Doc"
Записи выведутся группами по дням, внутри одного дня отсортированы по месяцам, а внутри месяца по годом.
Т.е. получится список 1.5.03 , 1.6.03 , 1.6.04 , 2.4.02 , 2.6.03 и т.д.
С уважением.


Консультировал: Филатов Евгений Геннадьевич
Дата отправки: 25.01.2007, 15:58

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 139104 от Volhit

Здравствуйте, Драк Георгий!
1. Функция left в MS SQL есть ("select left(field_name, 5) from table_name" вернет первые пять символов
2. Пользуйтесь сортировкой (конструкция "order by <FIELD_NAME> desc" отсортирует поле по убыванию)- например: "select name, last_name, age from clients order by name desc")


Консультировал: Volhit
Дата отправки: 25.01.2007, 17:01

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 139111 от Grigory

Здравствуйте, Драк Георгий!
Согласну Help от MS SQL Server 2000, для этого используется следующая функция:

SUBSTRING
Returns part of a character, binary, text, or image expression. For more information about the valid Microsoft® SQL Server™ data types that can be used with this function, see Data Types.

Syntax
SUBSTRING ( expression , start , length )

Arguments
expression

Is a character string, binary string, text, image, a column, or an expression that includes a column. Do not use expressions that include aggregate functions.

start

Is an integer that specifies where the substring begins.

length

Is an integer that specifies the length of the substring (the number of characters or bytes to return).

Note Because start and length specify the number of bytes when SUBSTRING is used on text data, DBCS data, such as Kanji, may result in split characters at the beginning or end of the result. This behavior is consistent with the way in which READTEXT handles DBCS. However, because of the occasional strange result, it is advisable to use ntext instead of text for DBCS characters.

Return Types
Returns character data if expression is one of the supported character data types. Returns binary data if expression is one of the supported binary data types.

The returned string is the same type as the given expression with the exceptions shown in the table.

Given expression Return type
text varchar
image varbinary
ntext nvarchar

Remarks
Offsets (start and length) using the ntext, char, or varchar data types must be specified in number of characters. Offsets using the text, image, binary, or varbinary data types must be specified in number of bytes.

Note Compatibility levels can affect return values. For more information about compatibility levels, see sp_dbcmptlevel.

Use SUBSTRING with text, ntext, and image data
This example shows how to return the first 200 characters from each of a text and image data column in the publishers table of the pubs database. text data is returned as varchar, and image data is returned as varbinary.

USE pubs
SELECT pub_id, SUBSTRING(logo, 1, 10) AS logo,
SUBSTRING(pr_info, 1, 10) AS pr_info
FROM pub_info
WHERE pub_id = '1756'

Here is the result set:

pub_id logo pr_info
------ ---------------------- ----------
1756 0x474946383961E3002500 This is sa

(1 row(s) affected)

This example shows the effect of SUBSTRING on both text and ntext data. First, this example creates a new table in the pubs database named npr_info. Second, the example creates the pr_info column in the npr_info table from the first 80 characters of the pub_info.pr_info column and adds an ü as the first character. Lastly, an INNER JOIN retrieves all publisher identification numbers and the SUBSTRING of both the text and ntext publisher information columns.

Удачи!


Консультировал: Grigory
Дата отправки: 25.01.2007, 17:26

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 139115 от Архангельский Андрей Германови

Здравствуйте, Драк Георгий!

Select * from Table order by Field Asc (если в порядке возрастания по этому полю)
Select * from Table order by Field Desc (если в порядке убывания по этому полю)

Вместо имени поля можно поставить номер поля по порядку перечисления в запросе

Select Fild1, Cnt(Fld2), Fld3 from Table
group by Fld2
order by 2


Консультировал: Архангельский Андрей Германови
Дата отправки: 25.01.2007, 17:33

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 139202 от Argyn.Durmagambetov

Здравствуйте, Драк Георгий!
1) что вы понимаете под типом text ?
2) для определения порядка записей результата запроса используется директива ORDER BY имя_поля
то есть ваш запрос быдет выглядеть так "SELECT * FROM table ORDER BY field_name" где field_name - имя поля по которому будет произведена сортировка
полей сортировки можно указать несколько через запятую
можно указать так же вид сортировки по возрастанию (используется по умолчанию) и по убыванию
пример запроса с сортировки по возрастанию "SELECT * FROM table ORDER BY field_name ASC"
пример запроса с сортировки по убыванию "SELECT * FROM table ORDER BY field_name DESC"


Консультировал: Argyn.Durmagambetov
Дата отправки: 26.01.2007, 06:28

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Здравствуйте, Драк Георгий!
1) SUBSTRING ('Строка',стартовая позиция,количество символов)
2) Order By ColumnName ASC/DESC
ASC - сортировка по возрастанию (по умолчанию, можно неуказывать)
DESC - сортировка по убыванию

Select tableID, Substring (FullName, 1,2)
From Table
Order by tableID DESC, FullName ASC


Консультировал: Vvvv
Дата отправки: 26.01.2007, 15:20

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 72589
Драк Георгий

# 1

= общий = | 25.01.2007, 15:17

СУБД - MySQL.

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.25595 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.82 от 22.02.2020
Версия JS: 1.35 | Версия CSS: 3.37