SQL

Moderator: Глобални Модератори

Post Reply
deniBG
Posts: 2
Joined: 26 Apr 2012, 19:25
Skype: ehoo

SQL

Post by deniBG » 26 Apr 2012, 19:35

Колеги, ако някой разбира от SQL, ще се радвам да ми помогне мъничко.
От известно време се мъча да напиша една процедура
Задачата е следната: Да се създаде съхранена процедура, за която колоната CustomerID, започва с дадена последователност от цифри, предадена като параметър или ако не се подаде нищо да изведе всички записи.

Доста време се мъчих, каквото съм прочела и съм се сетила съм опитала, това е последният вариант на заявката

CREATE PROCEDURE SelectCustomers1_12
@CustomerID varchar(10)
AS
IF @CustomerID IS NOT NULL
SELECT CustomerID, CompanyName FROM Customers WHERE CustomerID = LEFT(CustomerID,@CustomerID)
ELSE
SELECT * FROM Customers

Извикване

EXEC SelectCustomers1_12 1

В моята база има 11 записа, очаква се да се изведат три числа - 1, 10, 11 при подаване на числото 1
Моля помогнете, от толкова четене в нета и модификации въобще не си виждам грешката, а такава определено има.
Предварително благодаря!

mertol
Posts: 7
Joined: 03 Feb 2009, 16:36
Skype: mertol871

Re: SQL

Post by mertol » 28 Apr 2012, 16:38

Втория параметър на left трябва да е число, пробвай:
LEFT(CustomerID,LEN(@CustomerID))

deniBG
Posts: 2
Joined: 26 Apr 2012, 19:25
Skype: ehoo

Re: SQL

Post by deniBG » 28 Apr 2012, 21:23

Blagodarq ti mertol, probvah, taka mi izvejda pri podavane na chisloto edno samo edin red, inache promenih logikata na zaqvkata i vmesto left, napravo polzvam convert i mi se poluchi :)

orielpack
Posts: 1
Joined: 06 Feb 2015, 12:33
Skype: qqq23

Re: SQL

Post by orielpack » 06 Feb 2015, 12:34

виждам грешката, а такава определено има.

Post Reply