Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MSSQL][SQL]Wskazać kolumne w której dopasowało pattern
fate
post 2.04.2015, 11:05:23
Post #1





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam ma cos takiego ORów było 20+ bo tyle jest kolumn w tabeli
  1. SELECT *
  2. FROM [dbo].[Clients_Loc]
  3.  
  4. WHERE [CWelcomeMsg] LIKE '%www.%'
  5. OR
  6. [CInfo] LIKE '%www.%'
  7. OR
  8. [COrder] LIKE '%www.%'
  9. OR
  10. [CResignation] LIKE '%www.%'
  11. OR
  12. [CAddAccount] LIKE '%www.%'


W wyniku dostaje 4 kolumny
Jak zrobić zeby wskazac sobie w ktorej kolumnie dopasowalo pattern a pozostale komorki zeby byly np puste? Najlepiej jak cała kolumna bylaby pusta to tez ja pominac w wyniku czarodziej.gif
Czy to jest do zrobienia w SQL? jakiś warunek po SELECT

Nie mam TSQL nie wiem co to.
Niechcialbym robic oddzielnych zapytań dla każdej kolumny.

2 pytanie
jaka jest konstrukcja zeby wymienic te kolumny po przecinku a nie sie tak powtarzac thumbsdownsmileyanim.gif


--------------------
Go to the top of the page
+Quote Post
trueblue
post 2.04.2015, 11:26:15
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. SELECT kolumna_1 LIKE '%www.%' AS dopasowanie_w_kolumne_1,kolumna_2 LIKE '%www.%' AS dopasowanie_w_kolumne_2 FROM tabela


--------------------
Go to the top of the page
+Quote Post
fate
post 2.04.2015, 15:35:06
Post #3





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam
Microsoft SQL Server Managment Studio
krzyknął:

Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'LIKE'.

Troche pokombinował i nadal idento.

  1. SELECT [LClient],[Culture],
  2. [CWelcome] LIKE '%www.%' AS '1',
  3. [CInfo] LIKE '%www.%' AS '2',
  4. ...


Czy to jest kwestia jakiejś konfiguracji środowiska? "Rodzaju" DB? graduated.gif


--------------------
Go to the top of the page
+Quote Post
pawwin
post 2.04.2015, 23:33:20
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 3
Dołączył: 2.04.2015

Ostrzeżenie: (0%)
-----


Nie wiem czy dokładnie o to chodziło ale to zapytanie zwróci Ci nazwę kolumny w której znalazł się szukany tekst:
  1. SELECT
  2. CASE WHEN CInfo LIKE '%www.%' THEN 'CInfo'
  3. WHEN COrder LIKE '%www.%' THEN 'COrder'
  4. WHEN CResignation LIKE '%www.%' THEN 'CResignation '
  5. ELSE NULL
  6. END AS dopasowana_kolumna
  7. FROM [dbo].[Clients_Loc]
  8. WHERE CASE WHEN CInfo LIKE '%www.%' THEN 'CInfo'
  9. WHEN COrder LIKE '%www.%' THEN 'COrder'
  10. WHEN CResignation LIKE '%www.%' THEN 'CResignation '
  11. ELSE NULL
  12. END IS NOT NULL
Go to the top of the page
+Quote Post
fate
post 3.04.2015, 07:05:43
Post #5





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dokładnie tak, dogrzebałem sie do tych ifów ale niezakumałem jakby tego użyć, dzieki!

pawwin
dlaczego jak wywale 2 czesc tj.

  1. SELECT
  2. CASE WHEN CInfo LIKE '%www.%' THEN 'CInfo'
  3. WHEN COrder LIKE '%www.%' THEN 'COrder'
  4. WHEN CResignation LIKE '%www.%' THEN 'CResignation '
  5. ELSE NULL
  6. END AS dopasowana_kolumna
  7. FROM [dbo].[Clients_Loc]
  8. /*
  9.   WHERE CASE WHEN CInfo LIKE '%www.%' THEN 'CInfo'
  10.   WHEN COrder LIKE '%www.%' THEN 'COrder'
  11.   WHEN CResignation LIKE '%www.%' THEN 'CResignation '
  12.   ELSE NULL
  13.   END IS NOT NULL
  14. */


zwraca mi taki sam wynik, potrzebne to to?


--------------------
Go to the top of the page
+Quote Post
pawwin
post 3.04.2015, 08:17:22
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 3
Dołączył: 2.04.2015

Ostrzeżenie: (0%)
-----


Jest to tylko warunek zwracający jedynie wiersze, w których wystąpiło dopasowanie, w przypadku braku tego fragmentu możesz dostać w odpowiedzi nullowe rekordy wink.gif
Go to the top of the page
+Quote Post
fate
post 3.04.2015, 10:15:21
Post #7





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dzieki, załapałem.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:10