2009-08-03 2 views
2

мне нужен мой запрос, чтобы вытащить все DirName то, что имеет следующий префикс «сайт/тест/тест /» является правильным синтаксисом а «*»SQL запросу, подстановочный, MS SQL SERVER 2005

SELECT DirName, count(*) AS FileCount, SUM(Size)/1024 as 'SizeKB' 
FROM alldocs 
Where DirName = 'site/test/test/*' 
GROUP BY dirName 
ORDER BY DirName 

ответ

5

You необходимо использовать пункт LIKE SQL в:

SELECT DirName, count(*) AS FileCount, SUM(Size)/1024 as 'SizeKB' 
FROM alldocs 
Where DirName LIKE 'site/test/test/%' 
GROUP BY dirName 
ORDER BY DirName 

См http://www.sql-tutorial.net/SQL-LIKE.asp

+0

Отлично! Спасибо –

+0

Легко ли было включить общее количество столбцов для «SizeKB»? –

+0

@MG - лучше, если вы попросите об этом в другом вопросе, чтобы избежать обсуждения вне темы с использованием пространства комментариев. – karim79

0

вы используете MySQL? Если да, то вы можете использовать ЛЕВОЕ в чем-то вроде

 
SELECT DirName, count(*) AS FileCount, SUM(Size)/1024 as 'SizeKB' 
FROM alldocs 
Where LEFT(DirName, LENGTH('site/test/test/')) = 'site/test/test/' 
GROUP BY dirName 
ORDER BY DirName 
+0

MS sql server не распознает функцию длины. –