SQL:在字段上使用 like 命令在 SQL 输出中设置值

标签 sql

我正在通过 SQL 生成 Excel 报告,但知识有限。

到目前为止我所拥有的内容如下:

SELECT  table.field "Column1",
        table2.field2 "Column2",
        table3.field3 "Column3",
        table4.field4 "Column4",

from table, table2 etc

有很多规则

我需要的是根据表中的字段(类似于 5 个输入字符串之一)向报告添加第五列。然后我需要返回 5 个不在该字段中的输出字符串中的 1 个。

伪代码示例:

if table.field like one return eleven
if table.field like two return twelve
if table.field like three return thirteen
if table.field like four return fourteen
if table.field like five return fifteen

然后我需要将返回的值填充到报告的第五列中。

如果有人可以帮助我或为我指明正确的方向,我将不胜感激。如果有什么问题可以问我,请拍。

谢谢。

最佳答案

尝试 "SELECT .. CASE"

示例:

USE AdventureWorks2008R2;
GO
SELECT   ProductNumber, Category =
      CASE ProductLine
         WHEN 'R' THEN 'Road'
         WHEN 'M' THEN 'Mountain'
         WHEN 'T' THEN 'Touring'
         WHEN 'S' THEN 'Other sale items'
         ELSE 'Not for sale'
      END,
   Name
FROM Production.Product
ORDER BY ProductNumber;
GO

编辑

要查找子字符串,请尝试 CHARINDEX:

USE AdventureWorks2008R2;
GO
SELECT FirstName, LastName, TelephoneNumber, 'NewField' = 
     CASE
          WHEN CHARINDEX('testString1', Address) > 0 THEN 'Value1'
          WHEN CHARINDEX('testString2', Address) > 0 THEN 'Value2'
          WHEN CHARINDEX('testString3', Address) > 0 THEN 'Value4'
          ELSE 'Value4'
     END
FROM Person.vAdditionalContactInfo;

关于SQL:在字段上使用 like 命令在 SQL 输出中设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5732448/

相关文章:

mysql - 我的自定义嵌套 SQL 查询不起作用

mysql - Doctrine/Symfony "translates"空串变成NULL

mysql - 子查询在 select 语句中返回多于 1 行

python - SQLAlchemy 中的编译扩展 : functions used in indexes

sql - 处理 MySQL 中缺失的列

php - mysql 导入中带有德语字母(ä、ü、ö)的奇怪图标

sql - 获取 BIT 列的 MAX 值

sql - 对于相同的查询,SQLite命令行客户端和SQLite库之间的性能不同

php - 将一周添加到以 YYYYMMDD 格式存储的 SQL 值

mysql - 来自 SELECT 语句的 SQL UPDATE 语句?