选择<a or="" b=""> FROM my_table WHERE A=5 OR B=5;

时间:2016-11-17 11:14:05

标签: sql

SELECT <A OR B> FROM my_table WHERE A=5 OR B=5;

Say the values (A,B) are:

1,5
2,5
5,3
5,4

The result of SELECT should be

1
2
3
4

In other words I need the value from the other column (other than the one found by WHERE).

5 个答案:

答案 0 :(得分:3)

你可以试试这个:

SELECT
    CASE WHEN a = 5 THEN b
         ELSE a
    END AS AorB
FROM my_table 
WHERE a = 5 OR b = 5

如果您的SQL方言中没有CASE,我会想到另一种可能的解决方案,但是,它不会保留行的顺序。

SELECT b AS AorB FROM my_table WHERE a = 5
UNION ALL
SELECT a AS AorB FROM my_table WHERE b = 5

请注意,此查询明确允许结果集中包含重复值!如果要查看不同的值,则应省略ALL

答案 1 :(得分:2)

假设您的数据库支持案例表达式,并假设AB具有相同的数据类型 - 这应该有效:

SELECT CASE WHEN A = 5 THEN B ELSE A END AS OtherValue
FROM Table
WHERE A = 5
OR B = 5;

答案 2 :(得分:2)

如果您正在寻找一个非常易读的查询,请使用select a from my_table where b = 5 union select b from my_table where a = 5;

RewriteRule ^other/(.*) /wp-includes/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^file/(.*) /wp-content/uploads/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^ext/(.*) /wp-content/plugins/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^skin/([_0-9a-zA-Z-]+)/main.css /index.php?style_wrapper=true&template_wrapper=$1&sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^skin/([_0-9a-zA-Z-]+)/style\.css /nothing_404_404?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^skin/(.*) /wp-content/themes/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^([_0-9a-zA-Z-]+/)?ajax /wp-admin/admin-ajax.php?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^inc/(.*) /wp-content/$1?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^(readme\.html|license\.txt|wp-content/debug\.log|wp-includes/$) /nothing_404_404?sEyM_hide_my_wp=1234 [QSA,L]
RewriteRule ^(((wp-content|wp-includes)/([A-Za-z0-9\-\_\/]*))|(wp-admin/(!network\/?)([A-Za-z0-9\-\_\/]+)))(\.txt|/)$ /nothing_404_404?sEyM_hide_my_wp=1234 [QSA,L]

答案 3 :(得分:2)

假设?php $this->startSetup(); $this->addAttribute(catalog_product, 'featured_product', array( 'group' => 'General', 'input' => 'select', 'type' => 'text', 'label' => 'Featured Product', 'backend' => '', 'visible' => true, 'required' => false, 'visible_on_front' => true, 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 'source' => 'eav/entity_attribute_source_boolean', 'sort_order' => 8, )); $this->endSetup(); A都是数值,我想知道哪个解决方案可以更快地运行,使用BCASE(两者都是常规解决方案)或类似查询这一个:

UNION

答案 4 :(得分:0)

我认为这会奏效:

SELECT CASE WHEN a = 5 THEN b ELSE a END val FROM #tmpAll WHERE 5 IN (a, b)