MDB -> ADP

Alexander Say
Дата: 26.05.2004 01:36:19
В MDB запросе было:
SELECT [ID], [Str1] & ("."+[Str2]) AS VarNum FROM Tab
как это перефразировать под ADP ?
Senin Viktor
Дата: 26.05.2004 09:12:53
типа этого
SELECT [ID], [Str1] + CASE WHEN [Str2] IS NULL then N'' ELSE N'.'+[Str2] END AS VarNum FROM Tab 
АлексейК
Дата: 26.05.2004 11:02:05
еще :

SELECT ID, Str1 +  '.' + ISNULL(Str,'')  AS VarNum FROM Tab 



2
SET CONCAT_NULL_YIELDS_NULL  ON

3 можно поставить эту опцию для всей ДБ по умолчанию

4 вроде можно поставить свойства коннекшена для склеивания с нулом ?
Connection.Properties("NULL Concatenation Behavior") = DBPROPVAL_CB_NULL
Senin Viktor
Дата: 26.05.2004 11:08:05
2АлексейК

п.1 не катит - будет всегда точка в конце, а она не нужна
п.2 не катит - так как либо будет NULL для всей строки либо, опять же, всегда будет точка в конце
п.3. - см. п.2
paparome
Дата: 26.05.2004 11:13:17
ISNULL('.' + Str,'')

?
Senin Viktor
Дата: 26.05.2004 11:15:47
вариант paparome лучший :)

SELECT [ID], [Str1] + ISNULL('.' + [Str2],'') AS VarNum FROM Tab 
АлексейК
Дата: 26.05.2004 12:21:09
ну вот , запинали ))

так будет быстрее всего:

SELECT [ID], [Str1] + COALESCE ('.' + [Str2],'') AS VarNum FROM Tab
paparome
Дата: 26.05.2004 12:23:57
автор
так будет быстрее всего:

обоснуйте почему функция COALESCE, будет быстрее функции ISNULL?
АлексейК
Дата: 26.05.2004 12:27:49
видимо код у нее другой, более быстрый ,

в соседнем форуме был топик по выбору оптимальных функций - был сделан вывод что COALESCE быстрее ISNULL
paparome
Дата: 26.05.2004 12:32:24