次のような値を含む列があります。例:
ファラリ - 2013年製
メルセデス - 2012年製
ジャガー - 1978 年製
製造年が最も高い、または最近の車を返品したい:
このようなものは私に年を与えますが、明らかに残りの文字列を切り捨てます:
SELECT
MAX(RIGHT(CarProfile, 4))
FROM mySchema.Car;
最高の年を取得しながら完全な文字列を維持するにはどうすればよいですか?
この場合: Farari - 2013 年製
次のような値を含む列があります。例:
ファラリ - 2013年製
メルセデス - 2012年製
ジャガー - 1978 年製
製造年が最も高い、または最近の車を返品したい:
このようなものは私に年を与えますが、明らかに残りの文字列を切り捨てます:
SELECT
MAX(RIGHT(CarProfile, 4))
FROM mySchema.Car;
最高の年を取得しながら完全な文字列を維持するにはどうすればよいですか?
この場合: Farari - 2013 年製
SELECT top 1 *
FROM Car order by RIGHT(CarProfile, 4)*1 desc
データベースに保存するのではなく、印刷するときに「製」を取得する必要があります。したがって、代わりにテーブルは次のようになります。
CarProfile | Year
---------------
Ferrari | 2013
Mercedes | 2012
Jaguar | 1978
そして、あなたの「メイドイン」は、次のようなクエリを介して取得されます。
SELECT CarProfile, ' - made in', year
FROM Car
HAVING year = MAX(year)
または、表示されたときにそれを書くこともできます(たとえば、php):
<?php echo $CarProfile . " - made in " $year;?>
テーブルをよりコンパクトでフレンドリーにします。