Вот мой случай, у меня есть таблица PRODUCTS
UDF Функция поиска файлов в SQL Server
create table PRODUCTS
(
ID_PRODUCTS CHAR(10) primary key not null,
NAME CHAR(30),
PRICE INTEGER
)
Тогда я заполнить его с некоторыми данными, ...
insert into PRODUCTS values('B1','Samsung Galaxy Ace 2',250)
insert into PRODUCTS values('B2','Samsung Galaxy Tab 3',375)
insert into PRODUCTS values('B3','Samsung Galaxy Note 2',700)
insert into PRODUCTS values('B4','Apple iPod Touch',200)
insert into PRODUCTS values('B5','Apple Macbook Pro',1250)
Тогда я хочу создать хранимую функцию для поиска данных на основе ключевого слова на NAME
столбец в таблице PRODUCTS
. Например, когда я выполняю эту функцию с ключевым словом Samsung
, она должна отображать список, содержащий слово Samsung
в названии. Я надеюсь, что этот список будет, как этот внешний вид
ID_PRODUCTS | NAME | PRICE
========================================
B1 | Samsung Galaxy Ace 2 | 250
B2 | Samsung Galaxy Tab 3 | 375
B3 | Samsung Galaxy Note 2 | 700
Вот код, но ничего не показывают, когда выполнить его (select * from dbo.products_fun
)
create function product_fun
(
@name char(30)
)
returns TABLE
as
return
(select * from products where name like '%@name%')
Я думаю, что это ничего не показывают, потому что запрос
select * from products where name like '%@name%'
Это не поиск ключевых слов внутри переменной @name .., но поиск ключевого слова «@name», ... поэтому он ничего не показывает при его выполнении. Кто-нибудь хочет помочь ???
Я рекомендую вам следует использовать ** 'VARCHAR (30) '**, а не' char (30) ', который будет заполнен до заданной длины 30 символов пробелами ... –
ОК, я сделаю это, .... но как насчет синтаксиса проблемы, мой запрос выбирает * из продуктов, где имя типа «% @ name%», .... ???? Вы знаете, где моя ошибка ??? –
Попытка: 'LIKE @Name + '%'' –