我正在SSMS
中运行以下T-SQL代码,但我没有得到关于查询中最后一列的结果:
SELECT *,
(CASE WHEN Description like '%AI% '
THEN 'AI'
ELSE 'OTHER'
END) as 'Meal Plan'
FROM TestTable
TestTable的“描述”列是nvarchar
列。该列中的值的示例将是“STD AI REVENUE”。
从上面的查询中,如果“描述”列中的相应值为“STD AI REVENUE”,我希望“膳食计划”列的值为“AI”。但是,我的查询是用'OTHER'填写整个'膳食计划'列。
感谢您的帮助!
答案 0 :(得分:7)
这是您当前的逻辑:
for(int i=0;i<A.length;i++)
{
for(int j=0;j<A.length;j++)
{
if(A[i]==B[j])
{
count=count+1; //It checks how many times equal elements have been found
//ensure to declare and initialize int count=0;
}
}
}
if(count>=3)
System.out.println("true");
这将匹配空格中结尾的描述。你可能打算这样做:
CASE WHEN Description like '%AI% '
这是一个演示,显示查询背后的逻辑和建议的更正:
答案 1 :(得分:0)
试
CASE WHEN Description like N'%AI% '
答案 2 :(得分:0)
您的情况应该看起来像'%AI%',而不是'%AI%'(注意空格在哪里), 并且如上所述,您应该使用带有unicode字段的 unicode 搜索字符串,即使在您的特定情况下它也无关紧要