私がやろうとしているのは、テーブルの2つのフィールドを連結し、連結されたフィールドの長さの降順で並べ替えて、最高の結果を取得することです...
これが私がこれを達成するために使用しているSQLです...
declare @color nvarchar(255);
declare @board_name nvarchar(255);
select top(1)
@board_name = board_name,
@color = base_color + case when shade_color is null then '' else '/' + shade_color end
from
cut_vinyl
order by
len(@color) desc;
select @board_name, @color;
だから、もし私が次の表を持っていたらcut_vinyl
board_name | base_color | shadow_color ===================================== board0001 | クリア| ヌル board0002 | クリア| 青 board0003 | ブロンズ| ブロンズ board0004 | ブロンズ| 緑 board0005 | ブロンズ| 青 board0006 | ブロンズ| ヌル
次に、 board0003であり、ブロンズ/ブロンズであると予想@board_name
しますが、代わりに取得しているように見えるのは、= board0001、= clearのような結果です。@color
@board_name
@color