-1

table_priceList:

+--------+------+------+------+-------
| ProductID| price1 | price2 | price3 |
+--------+--------+------+------+------
|   10001 |   30    |  56    |   23   |
|   10002 |   650   | 560    |  675   |
|   10003 |   57    |  50    |  60    |
|   10004 |  300    | 305    |  3009  |
+--------+------+------+------+-------

各行の最小列値を見つける必要があります。

そのように見えます。

-----+------+------+---
| ProductID| smallest | 
+--------+--------+-----
|   10001 |    23     | 
|   10002 |    560    | 
|   10003 |    50     | 
|   10004 |    300    | 
+--------+------+------

問題を解決するのを手伝ってください

4

2 に答える 2

7

ただ使うLEAST()

SELECT ProductID, LEAST(price1, price2, price3) smallest
FROM   tabl_priceList

出力

╔═══════════╦══════════╗
║ PRODUCTID ║ SMALLEST ║
╠═══════════╬══════════╣
║     10001 ║       23 ║
║     10002 ║      560 ║
║     10003 ║       50 ║
║     10004 ║      300 ║
╚═══════════╩══════════╝
于 2013-05-17T05:26:19.143 に答える
0

CASEまたは、同じステートメントを使用することもできます。

SELECT
ProductID
, CASE WHEN price1 <= price2 and price1 <= price3 THEN Price1
       WHEN price2 <= price1 and price2 <= price3 THEN Price2
       ELSE price3 END AS smallest
FROM tabl_priceList;

出力:

╔═══════════╦══════════╗
║ PRODUCTID ║ SMALLEST ║
╠═══════════╬══════════╣
║     10001 ║       23 ║
║     10002 ║      560 ║
║     10003 ║       50 ║
║     10004 ║      300 ║
╚═══════════╩══════════╝

このSQLFiddleを参照してください

于 2013-05-17T05:27:58.650 に答える