PDA

View Full Version : کوئری گرفتن از یک فیلد



fahimi
چهارشنبه 23 اردیبهشت 1394, 21:37 عصر
در یکی از تیبل ها فیلدی ایجاد کرده ام استان ها را پشت سرهم و بین آنها مانند: تهران;البرز;قم;فارس ;مرکزی ذخیره کرده ام
با چه کوئری می شود داده ها را بصورت
تهران
البرز
قم
فارس
مرکزی
نمایش داد.
البته در صورتیکه در فایل تکس باشد با روش زیر می شود اینکار کرد ولی دیتابیس و تیبل خود Sqlsqerver نمی شناسد.


bulk insert #test from 'E:\1.txt'
with
(
rowterminator=';'
)

select * from #test

SabaSabouhi
چهارشنبه 23 اردیبهشت 1394, 22:12 عصر
در یکی از تیبل ها فیلدی ایجاد کرده ام استان ها را پشت سرهم و بین آنها مانند: تهران;البرز;قم;فارس ;مرکزی ذخیره کرده ام
با چه کوئری می شود داده ها را بصورت
تهران
البرز
قم
فارس
مرکزی
نمایش داد.
البته در صورتیکه در فایل تکس باشد با روش زیر می شود اینکار کرد ولی دیتابیس و تیبل خود Sqlsqerver نمی شناسد.


bulk insert #test from 'E:\1.txt'
with
(
rowterminator=';'
)

select * from #test


سلام
من تابحال این کار رو نکردم که از Text بخونم. اما شما داری خروجی رو تو یه فایل موقت می‌ریزی. شاید مشکلت همین باشه.
اون # که اول نام جدول ( #Test ) زدی باعث می‌شه که جدول در tempdb ساخته بشه و با پایان گرفتن session حذف بشه.
اگه می‌خوای جدول ماندگار باشه یه دیتابیس بساز، و همین کار رو با یه جدول دائمی ( بدون اون # ) انجام بده.

صبا صبوحی

fahimi
چهارشنبه 23 اردیبهشت 1394, 22:41 عصر
ممنونم از پاسخ شما
از روش بالا معمولا برای Import کردن از فایل تکس به Table استفاده می شود.
اما من می خواستم بجای فایل از از Table فیلد اطلاعات واکشی (استخراج) کنم.

مهدی نان شکری
پنج شنبه 24 اردیبهشت 1394, 11:04 صبح
با سلام
این روش را بررسی کنید

create table Test
(
id int,
Name nvarchar(100)
)


insert test values(3,'45,32,5'),(2,'33,87,90,11')

select * from test
;with mycte
as
(
select id,
cast(left(name,charindex(',',name+',')-1) as nvarchar(10)) NameItem,
STUFF(name, 1, CHARINDEX(',',name+','), '') Name
from test
union all
select id,
cast(left(name,charindex(',',name+',')-1) as nvarchar(10)) NameItem,
STUFF(name, 1, CHARINDEX(',',name+','), '') Name
from mycte
where Name>''
)
select id,nameItem from mycte



پی نوشت: لطفا به فرم نرمال 1 هم توجه نمایید

موفق باشید

fahimi
یک شنبه 27 اردیبهشت 1394, 15:12 عصر
در مورد نرم مال سازی حق با شماست.
در اکسس اطلاعات فیلد به حالت lookup wizard ذخیره شده بود می خواستم بدانم در sql چطور می شود از آن query گرفت که با مثال که جنابعالی ارایه نموده بودید حل شده.