我动态选择使用另一个字符串构建的字符串。因此,如果字符串2 =“大卫旗帜”,然后MyDynamicString
应该是“DBanne”在Where子句中引用时,选择动态字符串具有不同的值
Select
...
, Left(
left((select top 1 strval from dbo.SPLIT(string1,' ')) //first word
,1) //first character
+ (select top 1 strval from dbo.SPLIT(string1,' ')
//second word
where strval not in (select top 1 strval from dbo.SPLIT(string1,' ')))
,6) //1st character of 1st word, followed by up to 5 characters of second word
[MyDynamicString]
,...
From table1 Join table2 on table1pkey=table2fkey
Where MyDynamicString <> table2.someotherfield
我知道table2.someotherfield 不等于的动态字符串。然而,当我用Where的子句中的MyDynamicString替换为完全左侧(左侧(等..函数,它按预期的方式工作)。
我可以在查询中稍后引用此字符串吗?是否必须使用左(左(等等。如果你这样做,你有它上面的函数在where子句?
+1光滑,现在测试 – 2010-06-17 14:46:39
这是未经测试的,所以你可能不得不稍微调整语法,但我认为这个想法应该可行。另请参阅我的最新编辑。确保在内联视图中添加列别名(即“theString”部分)。 – dcp 2010-06-17 14:48:10
如何在此内联视图中引用table1.string1?内联视图的FROM子句对我来说还不清楚。我可以使用'FROM table1 JOIN table2 ON table1pkey = table2fkey',但是我必须重复Where子句吗?在我的实际代码中,Where子句有另外5或6个条件 – 2010-06-17 15:06:30