英文:
case statement - help required
问题
我是新手编写查询,我这里有一个表格,想要为它编写一个查询
No:     Desc                                 Name
1         apple                              fruit
2         apple raw                          fruit
3         apple ripe                         fruit
4         APPLE                              fruit
5         tomato                             veg
6         tomato 2                           veg
所以这里我正在寻找一个case语句,无论描述(Desc)是什么,它都应该被分类为上面的(Name)
注意:有时"Apple"可以是全大写,全小写,还可以附加数字值与名称一起
如何为此编写一个case语句
期待回应。
英文:
I am new to write queries , i have a table here and wanted to write a query for that
No:     Desc                                 Name
1         apple                              fruit
2         apple raw                          fruit
3         apple ripe                         fruit
4         APPLE                              fruit
5         tomato                             veg
6         tomato 2                           veg
so here i am looking for a case statement , whatever the description(Desc) is it should be categorised as above (Name)
NOTE : sometimes Apple can be all upper case , all lower case , numerical value also added along with name
how do i write a case statement for that
looking forward for response
looking for case statement
答案1
得分: 1
不需要使用 case expression 来实现您的请求 - 您可能需要像这样使用 column alias:
SELECT No, Name AS Description
FROM YOURTABLE
或者:如果您要求将 Name 和 Description 进行 concatenation,则解决方案可能因您使用的数据库而异,例如:
SELECT NO, Name || ' ' || Desc AS Description
FROM YOURTABLE
如果在您的数据库中使用 || 不起作用,那么可以尝试使用 +(如果使用 MS SQL Server),或者尝试:
SELECT No, CONCAT(Name, ' ', Desc) AS Description
FROM YOURTABLE
仅当您需要根据行中的某些值执行不同操作时,才需要使用 case expression,作为参考,case expression 并不复杂,例如:
SELECT No
    , CASE WHEN Desc LIKE '% %' THEN Name ELSE Desc END AS name2
FROM YOURTABLE
只有在需要根据行中的某些值执行不同操作时才需要使用 case expression。
英文:
You do not need a case expression to achieve your request - you MIGHT need a column alias like this:
SELECT No, Name AS Description
FROM YOURTABLE
OR: if you are asking for a concatenation of Name and Description then the solution can differ depending on which database you use: e.g.
SELECT NO, Name|| ' ' || Desc AS Description
FROM YOURTABLE
IF using || won't work in your database then instead use + if using MS SQL Server or perhaps try:
SELECT No, CONCAT(Name,' ',Desc) AS Description
FROM YOURTABLE
For reference a case expression isn't difficult e.g.
SELECT No
    , CASE WHEN Desc LIKE '% %' THEN Name ELSE Desc END AS name2
FROM YOURTABLE
You only need a case expression if you need to do different things depending on some value(s) in the row.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。



评论