t-sql ×22
Создан 04.01.2025
0
голоса
1
ответов
1
просмотров
Для чего действительно нужен SQL-тип данных национального символа (NCHAR)?

Заголовок: Проблема с использованием типов данных NCHAR и NVARCHAR в различных СУБД

Тело вопроса:

Я столкнулся с ситуацией, связанной с выбором типов данных для хранения строковых значений в SQL. Я заметил, что, помимо стандартных типов CHAR (CHARACTER) и VARCHAR (CHARACTER VARYING), SQL...

6
голоса
5
ответов
11
просмотров
Лучший способ удалить часть времени из datetime в SQL Server

Какой метод обеспечивает наилучшие показатели производительности при удалении временной части из поля datetime в SQL Server?

Я рассмотрел два следующих метода:

a) select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)

или

b) select cast(convert(char(11), getdate(), 113) as...
6
голоса
5
ответов
13
просмотров
OR не поддерживается в выражении CASE в SQL Server

Описание проблемы

Я пытаюсь использовать оператор OR в cláusule WHEN выражения CASE, но получаю сообщение об ошибке, поскольку данная конструкция не поддерживается.

Вот пример кода, который я использую:

CASE ebv.db_no 
    WHEN 22978 OR 23218 OR 23219 THEN 'WECS 9500' 
    ELSE...
6
голоса
5
ответов
16
просмотров
Возможно ли задать условия в Count()?

Возможно ли указать условие в функции Count()? Я хотел бы считать только те строки, которые имеют, например, "Менеджер" в столбце Position.

Мне нужно сделать это в самом операторе COUNT, а не с помощью WHERE; я спрашиваю об этом, потому что мне нужно посчитать как Менеджеров, так и Других в одном...

7
голоса
5
ответов
29
просмотров
Получить первую строку каждой группы

У меня есть таблица, из которой я хочу получить последние записи для каждой группы. Вот структура этой таблицы:

Таблица DocumentStatusLogs | ID | DocumentID | Status | DateCreated | |----|------------|--------|-------------| | 2 | 1 | S1 | 29.07.2011 | | 3 | 1 | S2 ...

8
голоса
5
ответов
30
просмотров
Запрос UPDATE в SQL с использованием JOINов

Я столкнулся с задачей обновления поля таблицы, используя значение, полученное в результате соединения трех таблиц.

Пример SQL-запроса:

select
    im.itemid,
    im.sku as iSku,
    gm.SKU as GSKU,
    mm.ManufacturerId as ManuId,
    mm.ManufacturerName,
    im.mf_item_number,
   ...
6
голоса
5
ответов
31
просмотров
Выбор COUNT(*) с DISTINCT

У меня есть проблема с запросом в SQL Server 2005. У меня есть таблица cm_production, в которой перечислены все коды, которые были выставлены в продакшен. Таблица содержит столбцы ticket_number, program_type, program_name и push_number, а также несколько других столбцов. ЦЕЛЬ: Посчитать все...

13
голоса
5
ответов
40
просмотров
Как получить идентификатор вставленной строки?

Как получить значение IDENTITY вставленной строки?

Я знаком с @@IDENTITY, IDENT_CURRENT и SCOPE_IDENTITY, но не понимаю, какие последствия или влияние связано с каждым из них. В чем разница между ними, и когда следует использовать каждое из этих значений?

16
голоса
5
ответов
50
просмотров
Как выполнить оператор UPDATE с JOIN в SQL Server?

Я пытаюсь обновить таблицу в SQL Server с данными из ее 'родительской' таблицы, см. ниже:

Таблица: sale

id (int) udid (int) assid (int)

Таблица: ud

id (int) assid (int)

sale.assid содержит правильное значение для обновления ud.assid.

Какой запрос выполнит это обновление? Я предполагаю, что...

7
голоса
5
ответов
17
просмотров
Как выбрать все записи из одной таблицы, которые отсутствуют в другой таблице?

Описание проблемы

У меня есть две таблицы в базе данных:

  • table1 (id, name)
  • table2 (id, name)

Мне нужно составить запрос, который выберет все имена из table2, которых нет в table1. Как правильно сформулировать этот SQL-запрос?

18
голоса
5
ответов
31
просмотров
Как выполнить IF...THEN в SQL SELECT?

Как выполнить оператор IF...THEN в операторе SQL SELECT?

Например:

SELECT IF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable, * FROM Product

Вопрос заключается в том, как правильно использовать условные операторы в запросах SQL для получения нужного результата.

9
голоса
5
ответов
29
просмотров
Следует ли мне использовать != или <> для обозначения "не равно" в T-SQL?

У меня возник вопрос по поводу синтаксиса SQL. Я заметил, что в коде используется как оператор !=, так и оператор `` для обозначения "не равно". Какой из этих синтаксисов предпочтителен и почему?

Лично мне больше нравится !=, так как `` напоминает мне о Visual Basic.

18
голоса
5
ответов
46
просмотров
"Вставка результатов хранимой процедуры в временную таблицу"

Вопрос: Как выполнить SELECT * INTO [временная таблица] FROM [хранимая процедура]? Не FROM [таблица] и без определения [временной таблицы]?

Я использую следующий запрос, чтобы выбрать все данные из таблицы BusinessLine во временную таблицу tmpBusLine, и это работает...

9
голоса
5
ответов
21
просмотров
Как выполнить JOIN с первой строкой?

Заголовок: Как избежать дублирования строк в SQL-запросе при наличии нескольких строк в заказе?

Я приведу конкретный, но гипотетический пример.

Каждый Заказ обычно имеет только один позиционный элемент:

Заказы:

OrderGUID   OrderNumber
=========   ============
{FFB2...}  ...
10
голоса
5
ответов
43
просмотров
Функция против Хранимой процедуры в SQL Server

Когда следует использовать функцию вместо хранимой процедуры в SQL, и наоборот? В чем заключается назначение каждого из этих элементов?

14
голоса
5
ответов
44
просмотров
Как экранировать одинарную кавычку в SQL Server?

Я пытаюсь вставить текстовые данные в таблицу в SQL Server 9. В тексте есть одинарная кавычка ('). Как правильно экранировать этот символ?

Я пробовал использовать две одинарные кавычки, но у меня возникли ошибки. Пример:

insert into my_table values('hi, my name''s tim.');

Кто-нибудь...

17
голоса
5
ответов
28
просмотров
Найти все таблицы, содержащие столбец с указанным именем

Проблема: Поиск имен таблиц с определенными столбцами в SQL

Я пытаюсь выполнить запрос, который позволит мне получить имена таблиц, содержащих столбцы, соответствующие условию LIKE '%myName%'. Я использую SQL и хочу узнать, как можно осуществить такой поиск.

В частности, интересует,...

22
голоса
4
ответов
38
просмотров
Как вернуть только дату из типа данных DateTime в SQL Server

У меня есть запрос к базе данных:

SELECT GETDATE()

Этот запрос возвращает: 2008-09-22 15:24:13.790.

Я хочу получить только дату без времени: 2008-09-22 00:00:00.000.

Как я могу этого добиться?

20
голоса
3
ответов
40
просмотров
Вставка нескольких строк в одном SQL-запросе?

Я сталкиваюсь с проблемой, когда мне нужно вставить несколько строк данных в таблицу с помощью SQL. У меня есть несколько наборов данных для вставки сразу, скажем, 4 строки. Моя таблица имеет три колонки: Person, Id и Office.

Вот каким образом я вставляю данные в таблицу:

INSERT...
11
голоса
5
ответов
32
просмотров
Исключить колонку с помощью SELECT * [кроме columnA] FROM tableA?

Заголовок: Как исключить столбцы из выборки в SQL без указания всех столбцов?

Описание проблемы:

Я знаю, что для выбора всех столбцов из таблицы можно использовать следующий запрос:

SELECT * FROM tableA

Однако, есть ли способ исключить один или несколько столбцов из выборки, не...