我有一张格式如下的表:
prod_code prod_pos prod_nm prod_price
1 1 product1 100
1 2 product2 200
1 3 product3 400
1 4 product4 500
现在我需要以下列方式获取记录
产品代码,product_nm和productprice,其中prod_pos =' 1'和product_pos和prod_prod_price,其中prod_nm =' product4'
它有点复杂也可能令人困惑,但请帮助我这些家伙。
提前致谢
答案 0 :(得分:0)
在黑暗中进行狂刺:
SELECT *
FROM table1
WHERE prod_pos = 1
OR prod_nm = 'product4';
答案 1 :(得分:0)
这应该这样做
select prod_code
, Prod_NM
, Prod_Price
FROM yourtable
WHERE
Prod_Pos = 1
AND
Prod_NM = 'Product4';
答案 2 :(得分:0)
修改强>
SELECT A.PRODUCT_CODE FIELD1, A.PRODUCT_NM FIELD2, A.prod_price FIELD3,
B.prod_pos FIELD4, B.prod_price FIELD5
FROM product_table A, product_table B
WHERE A.prod_pos = 1 AND B.prod_nm = 'product4'
再次编辑:
with product_table as
(
select 1 prod_code, 1 prod_pos, 'product1' prod_nm, 100 prod_price from dual
union
select 1 prod_code, 2 prod_pos, 'product2' prod_nm, 200 prod_price from dual
union
select 1 prod_code, 3 prod_pos, 'product3' prod_nm, 300 prod_price from dual
union
select 1 prod_code, 4 prod_pos, 'product4' prod_nm, 500 prod_price from dual
)
SELECT A.prod_code FIELD1, A.prod_nm FIELD2, A.prod_price FIELD3,
B.prod_pos FIELD4, B.prod_price FIELD5
FROM product_table A, product_table B
WHERE A.prod_pos = 1 AND B.prod_nm = 'product4'
为有问题的输入提供以下输出:
FIELD1 FIELD2 FIELD3 FIELD4 FIELD5
---------------------- -------- ---------------------- ---------------------- -------------
1 product1 100 4 500
原始答案:
检查您是否需要这样的东西:
SELECT 'TYPE1' TYPE, product_code FIELD_1 , product_nm FIELD_2
WHERE prod_pos = 1
UNION
SELECT 'TYPE2' TYPE, prod_pos FIELD_1 , prod_price FIELD_2
WHERE prod_nm = 'product4';
这将返回类似
的输出TYPE | FIELD_1 | FIELD_2
TYPE1 | 1 | product1
TYPE2 | 4 | 500
您可以使用按类型
区分的FIELD_1和FIELD_2访问相同的结果集答案 3 :(得分:0)
SELECT *
FROM product_table
WHERE
prod_pos = 1
AND
prod_NM = 'Product4';
或者如果你想减少这一列:
SELECT
prod_code as p_code_or_p_pos
, prod_price
, prod_nm
FROM product_table
WHERE
Prod_Pos = 1
union ALL
SELECT
product_pos as p_code_or_p_pos
, prod_price
, ''
FROM product_table
WHERE
Prod_Pos = 1