powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скалярная функция не выводит INT
7 сообщений из 7, страница 1 из 1
Скалярная функция не выводит INT
    #40029262
MentalMode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Прошу прощения, если я создал тему не в том разделе форума, я тут недавно, еще не освоился.

У меня возник вопрос, скалярная функция в SQL возвращает неверное значение. У меня есть таблица (не бейте тапками за кириллицу):
Код: sql
1.
2.
3.
4.
5.
SELECT TOP (1000) [ID_Продукта] /*INT*/
      ,[Название] /*CHAR(50)*/
      ,[Цена] /*MONEY*/
      ,[Цена_Акция] /*MONEY*/
  FROM [Sales_Shops].[dbo].[Product]


Есть функция:
Код: sql
1.
2.
3.
4.
5.
6.
ALTER FUNCTION [dbo].[returnProd](@nameProd CHAR)
	RETURNS INT
	AS
	BEGIN
		RETURN (SELECT ID_продукта FROM Product WHERE @nameProd = Product.Название);
	END;


При любом значении @nameProd функция выводит NULL, но если я выполню запрос:
Код: sql
1.
SELECT ID_продукта FROM Product WHERE 'Хлеб' = Product.Название


, то значение выведется верно (в данном случае, вывод будет "1"). Подскажите, пожалуйста, что я делаю не так?
...
Рейтинг: 0 / 0
Скалярная функция не выводит INT
    #40029264
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор@nameProd CHAR

надо написать CHAR(50)
...
Рейтинг: 0 / 0
Скалярная функция не выводит INT
    #40029267
MentalMode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
londinium,

я просто в шоке. Ломал голову над этим два дня, а решение оказалось крайне простым.
Чёрт возьми, спасибо вам огромное!
...
Рейтинг: 0 / 0
Скалярная функция не выводит INT
    #40029299
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а кто делает типы CHAR(50)?
...
Рейтинг: 0 / 0
Скалярная функция не выводит INT
    #40029321
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MentalMode

Код: sql
1.
@nameProd = Product.Название



Поменяйте местами переменную и поле в предикате. От вас не убудет, а серверу и всем будет приятно.
...
Рейтинг: 0 / 0
Скалярная функция не выводит INT
    #40029589
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MentalMode,

если ничего не получается, прочтите, наконец, справку. Чья-то цитата.
...
Рейтинг: 0 / 0
Скалярная функция не выводит INT
    #40029652
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
MentalMode,

если ничего не получается, прочтите, наконец, справку. Чья-то цитата.
я один, а справок много. Чья-то цитата
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скалярная функция не выводит INT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]