これをSQL Server 2008の適切な形式で入手するにはどうすればよいですか?SQLでselect caseを使用して2つの条件で注文する
CREATE PROCEDURE dbo.GetCustomerFleetList_C
(
@FilterBy NVARCHAR(200),
@CustCode NVARCHAR(30)
)
AS
SELECT
CASE @FilterBy
WHEN 'UnitNo' THEN UnitNo
WHEN 'EquipmentType' THEN EquipmentType
WHEN 'Registration' THEN Registration
WHEN 'EquipmentTypeModel' THEN EquipmentType + ' - ' + Model
ELSE NULL
END as 'Items'
FROM EcommerceCustomerFleet_C
WHERE CustomerCode = @CustCode
GROUP BY CASE @FilterBy
WHEN 'UnitNo' THEN UnitNo
WHEN 'EquipmentType' THEN EquipmentType
WHEN 'Registration' THEN Registration
WHEN 'EquipmentTypeModel' THEN EquipmentType + ' - ' + Model
ELSE NULL
END
ORDER BY
CASE @FilterBy
WHEN 'UnitNo' THEN LEN(UnitNo)
WHEN 'EquipmentType' THEN EquipmentType
WHEN 'Registration' THEN Registration
WHEN 'EquipmentTypeModel' THEN EquipmentType + ' - ' + Model END
GO
問題は、このラインWHEN 'UnitNo' THEN LEN(UnitNo), UnitNo
これで何をしようとしていますか?合体? – ZLK
ストアドプロシージャを作成しようとしています。基本的に私が 'WHEN 'UnitNo' THEN(LEN(UnitNo)、UnitNo)'でしようとしているのは、項目が 'VARCHAR'のときに適切な数値リストを作成することです。これは私のために働いています、私は 'CASE'ステートメントでそれを実装する正しい方法について確信していません –
ああ、あなたは2つのもので注文しようとしていますか?その場合は、そこに1つ入れ、別のorder by節で別のものを入れます。例えば'WHEN 'UnitNo' THEN LEN(UnitNO)... 'の後ろに' CASE WHEN @FilterBy =' UnitNo 'THEN UnitNo END'が続きます。 – ZLK