現時点では、私のSQLクエリで少し苦労しています。誰かが助けることができるのだろうか?私はWHERE句WHENまたはIF文を使用するSQL文
に少しクエリを修正したいとストアドプロシージャのいずれかに文字列を渡すしようとに基づいています
のparam文字列は、アルファベットやカテゴリIDのどちらかである可能性があり
ALTER procedure [dbo].[procProductShow]
@Alphabet varchar(3) = 'ALL'
AS
IF @Alphabet = 'ALL' or @Alphabet = 'A' OR @Alphabet = 'B' OR @Alphabet = 'C' --- UNTIL Z
SELECT
Product.ProdID,
Product.ProdImgThumbnailLoc,
Product.ProdImgThumbnailAltText
FROM
ProductCategory
INNER JOIN Product ON ProductCategory.ProdID = Product.ProdID
INNER JOIN Category ON ProductCategory.CatID = Category.CatID
WHERE
Product.ProdShowOnWeb = 1 AND
Category.ShowOnReport = 1 AND
(@Alphabet = 'ALL' OR Product.ProdHeading LIKE @Alphabet + '%')
ORDER BY Product.ProdHeading
ELSE
SELECT
Product.ProdID,
Product.ProdImgThumbnailLoc,
Product.ProdImgThumbnailAltText
FROM
ProductCategory
INNER JOIN Product ON ProductCategory.ProdID = Product.ProdID
INNER JOIN Category ON ProductCategory.CatID = Category.CatID
WHERE
Product.ProdShowOnWeb = 1 AND
Category.ShowOnReport = 1 AND
Category.CatId = @Alphabet
ORDER BY Product.ProdHeading
あなたのエラー/問題は何ですか? –
mysqlまたはsql server? –
これはMicrosoft SQL Serverです。 MySQLのような関係のないデータベースでタグ付けしないでください。 – tadman