辞書テーブルとデータはsqlで関連付けられ、結果を生成します

辞書テーブルとデータはsqlで関連付けられ、結果を生成します

私は最近pgsqlを実行し、クエリデータをバックエンドのディクショナリテーブルに関連付ける必要に遭遇しました。これは、以前はバックエンドクエリデータであり、フロントエンドに返されていました。 、私はいくつかの研究をしました。
ここに画像の説明を挿入
これは、年次データを照会するためのテーブルです:基本フィールドを例に取ると、enterprise_scoreです。
ここに画像の説明を挿入
これはディクショナリテーブルです:sys_derived_score。照合する例としてコードランクを取り上げます。
上記の表の基本的なクエリは、start_scoreとend_scoreの間にあり、応答値が返されます。

SQL写法为:
SELECT A.VALUE AS evaluation FROM enterprise_score b
LEFT JOIN sys_derived_score A on 
cast(COALESCE(b.basic,'0') as numeric) >CAST(A.start_score AS NUMERIC)
AND 
cast(COALESCE(b.basic,'0') as numeric)<![CDATA[<=]]> CAST(A.end_score AS NUMERIC)
AND A.code='rank'
WHERE 1=1
<if test="enterpriseName != null and enterpriseName !=''">
 AND b.company_name=#{enterpriseName}
</if>

ここでの関連付け方法に注意してください。
COALESCE(b.basic、 '0')は、b.basicがnullの場合、 '0'を取り、
キャスト(COALESCE(b.basic、 '0')を数値として)は、前のデータを数値型に変換することを意味します。
以下はpgsqlの例です。mysqlや他のデータベースの場合も同様です。検討してください。

ちなみに、複数のデータのリストをクエリするか、最も早い時間を取るか、アイテム数を指定します。
方法:1
. 時間でソート2。limitを使用して1つまたはいくつかのアイテムを制限します
例:3番目のものを
選択しますselect * from sys_badge limit 2,1

select * from sys_badge limit i、n

i:クエリ結果のインデックス値(デフォルトでは0から始まります)、i = 0の場合は省略できます
:クエリ結果によって返される数値
iとnの間に英語のコンマ "、"が使用されます。
一般に、ジャンプその前に、n

同じsql、異なる値をクエリするたびに、つまり、クエリフィールドは可変です。

SEELCT  ${type}  FROM tfsoftpark_company_getscore
where 1=1
<if test="enterpriseName != null and enterpriseName != ''">
AND companyName=#{enterpriseName}
</if>

このように、Javaで必要なさまざまなフィールドに応じてさまざまな値を取得できます。年間のccbと比較すると、さまざまなシステムがさまざまなテーブルを渡すことができます。

67件の元の記事を公開 いいね12 10,000人以上の訪問者

おすすめ

転載: blog.csdn.net/m0_37635053/article/details/105247836