2016-04-27 10 views
1

データはvarcharにいくつかの番号と何度かテキストがあります。 これを0から100まで、AからZをグループ分けして並べ替えたいが、10,11、... 2を返す。SSRSの文字列と数値のミックス値をソート

この私は、あなたがORDER BY句でCASE表現を使用することができ、レポートビルダー2014

+2

サンプルデータと予想される結果を投稿してください。 –

+0

この質問を見てください - http://stackoverflow.com/questions/36883693/ordering-street-address-in-ms-sql – Raj

答えて

0

を使用しています:valは数字以外の文字が含まれている場合

;WITH Tbl(val) AS(
    SELECT '1' UNION ALL 
    SELECT '10' UNION ALL 
    SELECT '2' UNION ALL 
    SELECT '3' UNION ALL 
    SELECT '15' UNION ALL 
    SELECT 'A' UNION ALL 
    SELECT 'B' UNION ALL 
    SELECT 'D' UNION ALL 
    SELECT 'E' UNION ALL 
    SELECT 'F' UNION ALL 
    SELECT 'Z' 
) 
SELECT * 
FROM Tbl 
ORDER BY 
    CASE WHEN val NOT LIKE '%[^0-9]%' THEN 0 ELSE 1 END, 
    CASE WHEN val NOT LIKE '%[^0-9]%' THEN CAST(val AS INT) END, 
    val 

NOT LIKE '%[^0-9]%'

はfalseを返します。そして

ソート=CInt(IIF(Fields!ID.Value like "[0-9]*", Fields!ID.Value, 1)) [A Zには】 :

+0

私はssrsでそれを解決したいです。 –

0

グループのプロパティには3つのソートパラメータ追加される:そして

ソート[ZにA] =CInt(IIF(Fields!ID.Value like "[0-9]*", 0, 1)):によって

ソート=Fields!ID.Value [ AからZへ]ソート

関連する問題