Michael Huhn: Komplexe MsSQL-Abfrage in einer stored procedure

Beitrag lesen

Hallo

ein Kollege ist gerade wiedergekommen und hat's mit erklärt. Was ich gesucht hatte, war folgendes:

CREATE PROCEDURE
 dbo.uspGetAttributesByAttributes
 @strAttributeIds varchar(500) AS

DECLARE
 @strSQL varchar(1000)

SET
  @strSQL = '
SELECT
 tblAttribute.strTitle,
 tblAttribute.intAttributeGroupId,
 tblAttribute.tblAttributeId,
 CASE
  WHEN intAttributeId IS NULL THEN 0
  ELSE 1
 END AS blnIsPossible
FROM
 tblAttributeSetAttribute
 JOIN tblAttributeSet ON tblAttributeSetId = intAttributeSetId
 RIGHT JOIN tblAttribute ON tblAttributeId = intAttributeId
WHERE ('

DECLARE
 @strWhere varchar(300)

EXEC
 spb_Split @strAttributeIds, 'tblAttributeSetAttribute.intAttributeId', 1, @strWhere OUTPUT

SET
 @strSQL = @strSQL + @strWhere + ')
OR
 tblAttributeSetAttribute.intAttributeId IS NULL
ORDER BY tblAttribute.intAttributeGroupId,tblAttributeSetAttribute.intAttributeId'

EXEC (@strSQL)
GO

und das funktioniert :)

thx a lot
Gruß
mhuhn