这可能很容易解决,但我似乎无法正确地找到答案。
我希望通过最新的ID从表中提取所有行,而无需手动键入每个列名。我有这种已经使用以下查询:
<p>
<input type="radio" id="channel_id" name="<?php echo esc_attr( $this->get_field_name( 'channel_type' ) ); ?>" value="channelid" <?php echo ($channel_type == 'channelid') ? 'checked' : ''; ?>>
<label for="channel_id">Channel ID</label><br>
<input type="radio" id="channel_name" name="<?php echo esc_attr( $this->get_field_name( 'channel_type' ) ); ?>" value="channel" <?php echo ($channel_type == 'channel') ? 'checked' : ''; ?>>
<label for="channel_name">Channel name</label>
</p>
它拉出了我需要的所有行。我试图通过使用此查询来解决这个问题:
SELECT
STANDARD_ID,
MAX(ID)
FROM
HIST_ILLUM_RT
WHERE STANDARD_ID IS NOT NULL
GROUP BY
STANDARD_ID
应拉的行数会随时间变化。
是否可以在不手动输入每个列名的情况下拉出所有列以及行(在这种情况下,超过50个)?或者除了在Oracle sql中手动输入外,别无选择吗?
答案 0 :(得分:1)
试试这个:
WITH CTE AS(
SELECT STANDARD_ID,ID,
ROW_NUMBER() OVER(Partition BY ID ORDER BY ID DESC) RN
FROM HIST_ILLUM_RT
WHERE STANDARD_ID IS NOT NULL
)
SELECT STANDARD_ID,ID
FROM CTE
WHERE RN = 1;
答案 1 :(得分:1)
如何在GROUP BY中使用自己的查询?
SELECT *
FROM HIST_ILLUM_RT
WHERE ID IN (
SELECT MAX(ID)
FROM HIST_ILLUM_RT GROUP BY STANDARD_ID
)