Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скалярная функция не выводит INT / 7 сообщений из 7, страница 1 из 1
19.12.2020, 15:38
    #40029262
MentalMode
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скалярная функция не выводит INT
Здравствуйте. Прошу прощения, если я создал тему не в том разделе форума, я тут недавно, еще не освоился.

У меня возник вопрос, скалярная функция в 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
19.12.2020, 15:44
    #40029264
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скалярная функция не выводит INT
автор@nameProd CHAR

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

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

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



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

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

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


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